第一章 数据库原理.docx
《第一章 数据库原理.docx》由会员分享,可在线阅读,更多相关《第一章 数据库原理.docx(63页珍藏版)》请在冰豆网上搜索。
![第一章 数据库原理.docx](https://file1.bdocx.com/fileroot1/2023-1/3/95d83463-5047-464e-881f-922039dddf68/95d83463-5047-464e-881f-922039dddf681.gif)
第一章数据库原理
第一章数据库原理
1.1数据库系统
1.2数据库应用系统
1.3数据模型
1.4关系数据库的设计
1.5Access2002与数据库的关系
小结与练习
1.1数据库系统
一,数据处理技术的发展状况
1.非关系型数据库系统
层次模型和网状模型
2.关系型数据库系统
数据按二维表组织
3.面向对象数据库系统
模块化程序设计变为面向对象的程序设计的
数据库系统的设计
二,数据库系统简介
1.数据库
2.数据库管理系统
3.数据库系统=数据库+数据库管理系统
三,数据库系统的组成
1.硬件
2.软件
3.数据库
4.数据库管理员
1.2数据库应用系统
数据库应用系统DBAS:
是指数据库应用程序系统,它是针对某一个实际应用管理对象而设计开发的一个面向用户的软件系统.如:
学生管理系统.
1.3数据模型
一,信息,数据和实体
信息是对客观事物或抽象概念的描述
数据是对客观事物或抽象概念的符号化的描述
实体是客观存在并可相互区别的事物
二,实体间的联系
1,一对一联系集
A中的一个实体至多同B中的一个实体相联系,而B中的一个实体也至多同A中的一个实体相联系。
2,一对多联系集
A中的一个实体可以同B中的任意数目(包括0)的实体相联系,而B中的一个实体至多同A中的一个实体相联系。
3,多对多联系集
A中的一个实体可以同B中任意数目(包括0)的实体相联系,而B中的一个实体也可以同A中任意数目(包括0)的实体相联系。
三,数据模型
层次模型:
分别用记录和链接来表示数据和数据间的联系.与网状模型不同的是:
层次模型中的记录只能组织成树的集合而不能是任意图的集合.
网状模型中的数据用记录(与Pascal语言中的记录含义相同)的集合来表示,数据间的联系用链接(可看作指针)来表示.数据库中的记录可被组织成任意图的集合.
关系模型用表的集合来表示数据和数据间的联系.每个表有多个列,每列有唯一的列名.
1.4关系数据库的设计
数据库的设计
需求分析
概念设计
逻辑设计
物理设计
二数据库应用系统的设计
1.5Access2002与数据库的关系
Access2002是一个桌面关系型的数据库管理系统.
练习
P101,2
我们举个例子来说明这个问题:
每个人都有很多亲戚和朋友,为了保持与他们的联系,我们常常用一个笔记本将他们的姓名,地址,电话等信息都记录下来,这样要查谁的电话或地址就很方便了.这个"通讯录"就是一个最简单的"数据库",每个人的姓名,地址,电话等信息就是这个数据库中的"数据".我们可以在笔记本这个"数据库"中添加新朋友的个人信息,也可以由于某个朋友的电话变动而修改他的电话号码这个"数据".不过说到底,我们使用笔记本这个"数据库"还是为了能随时查到某位亲戚或朋友的地址,邮编或电话号码这些"数据".
实际上"数据库"就是为了实现一定的目的按某种规则组织起来的"数据"的"集合",在我们的生活中这样的数据库可是随处可见的啊.
小结:
数据库是什么
图书管理员在查找一本书时,首先要通过目录检索找到那本书的分类号和书号,然后在书库找到那一类书的书架,并在那个书架上按照书号的大小次序查找,这样很快就能找到我所需要的书.
数据库里的数据像图书馆里的图书一样,也要让人能够很方便地找到才行.
如果所有的书都不按规则,胡乱堆在各个书架上,那么借书的人根本就没有办法找到他们想要的书.同样的道理,如果把很多数据胡乱地堆放在一起,让人无法查找,这种数据集合也不能称为"数据库".
数据库的管理系统就是从图书馆的管理方法改进而来的.人们将越来越多的资料存入计算机中,并通过一些编制好的计算机程序对这些资料进行管理,这些程序后来就被称为"数据库管理系统",它们可以帮我们管理输入到计算机中的大量数据,就像图书馆的管理员.
我们将要学习的Access也是一种数据库管理系统.
第三章创建Access数据库
3.1设计数据库
3.2创建数据库的方法
3.3习题
3.1关系数据库设计方法
关系数据库中,数据表是最基本的对象,表的
好坏,直接关系到数据库的效率以及对数据库管
理和维护,因此,开始建立数据库之前,用户须
先对数据库中的数据表进行仔细的分析和设计.
比如那些数据存放在一张表中,每个字段的名,
字段属性的设计,一个数据库中包含几张表,与
表之间的联系等
数据库表的设计方法
学分
课程名称
课程号
课程
班级
姓名
学号
学生
实体属性
实体
实例:
学生选课系统
实体之间联系:
多对多
初步设计关系表
85
4
多媒体
2145
计用05(3)
王五
055048011
80
4
数据库技术
2304
计用05(3)
王五
055048011
76
4
多媒体
2145
计用05
(2)
张三
055047006
85
4
数据库技术
2304
计用05
(2)
张三
055047006
成绩
学分
课程名称
课程编号
班级
姓名
学号
表3-1
计用05(3)
王五
055048011
计用05
(2)
张三
055047006
班级
姓名
学号
4
多媒体
2145
4
数据库技术
2304
学分
课程名称
课程编号
关系数据库设计步骤,原则
1.需求分析
信息需求
处理需求
安全性和完整性需求
2.确定需要的表
一个实体对应一个表
关系数据库设计步骤,原则
3.确定表中所需字段
每个字段直接和表中的实体相关
字段——实体型的属性
以最小的逻辑单位存储信息
表中的字段必须是原始数据
确定关键字字段
关键字字段——实体中的码
关系数据库设计步骤,原则
4.确定联系
一对多:
在"多"的一边加上"一"那边的关键字字段;
多对多:
添加一个关系表,表中存两个相关表的关键字字段;
一对一:
根据具体情况而定,或用一个表存储,或用两个表存储,两个表使用相同的关键字字段,也有可能两个表通过外关键字字段建立联系.
5.设计求精
3.2创建数据库的方式
利用数据库向导创建数据库
不利用向导创建数据库
3.2.1利用数据库向导创建数据库
例3-1创建"工时与账单"数据库
启动Access2002以后,将鼠标移动到工具栏上的新建图标单击左键,或通过"文件"\"新建"选项;打开新建文件窗口
2)打开通用模板窗口;
选择"工时与账单"图标,然后"确定"
3)出现"文件新建数据库"窗口;
选择路径输入文件名,单击"创建"按钮
4)启动数据库向导:
5)单击"下一步",进入下面窗口:
6)选择数据库中相应的表,确定表中的字段,并确定是否添加可选字段,(可选字段为斜体)然后单击"下一步"
7)确定屏幕的显示样式,然后"下一步"
8)确定打印报表的样式,然后"下一步"
9)确定数据库的标题,单击下一步:
10)单击"完成",开始创建数据库.
11)出现对话框,单击确定.
12)输入注册信息,然后关闭窗口
13)数据库对象建完后,系统会自动输入有关信息,输入完后关闭窗口.
14)在主切换面板中,选择进入各个窗体,输入客户的相关信息后关闭窗口;
15)回到数据库窗口用户可以查看数据库的对象(双击鼠标)
3.2.2不利用向导创建数据库
例3-2不利用向导创建"图书管理数据库"
打开Access,选择"空数据库","下一步"
在我们以后的章节中,将一直以图书管理
数据库作为例子
2)选择保存路径,输入数据库文件名"图书管理数据库",单击"创建".
3.3习题
操作题
使用模板创建一个学生管理的数据库
不使用模板创建一个空数据库
1.字段
字段名称要能够直接,清楚的反映信息内容
字段命名规定(同样适合于控件和对象):
长度不能超过64个西文字符(32个汉字);
不能包含句号".",感叹号"!
",重音符号和方括号"[]";
不能以空格开头;
不能包含控制字符(0~31的ASCII值);;
最好确保字段名和Access中已有的属性和其他元素的名称不相同.
2.字段的数据类型
合理选择字段的数据类型,可有效的提高数据库效率,并可避免一些错误的发生.
例:
2002年5月14日
8
日期或时间
日期(Date/Time)
货币值除外
8
用来算术计算的数值
数字(Num)
注释,说明
65536
长文本或文本与数字的组合
备注(Memo)
地址,电话号码,学号
255
文本或数字与文本组合,或不需要计算的数字
文本(Text)
备注
存储空间(字节)
适用范围
数据类型
表4-1字段的数据类型
UNC,URL路径
64000
用于超链接
超链接(Hyperlink)
例:
Word,Excel文件
1GB
用于使用OLE协议在其它程序中创建的OLE对象
OLE对象(OLEObject)
是/否(Yes/No)
此类型字段不能更新
添加记录时,Access自动制定的唯一顺序号.
自动编号(AutoNum)
精确到小数点左边15位,小数点右边4位,禁止四舍入.
8
货币值
货币(Currency)
备注
存储空间(字节)
适用范围
数据类型
表4-1字段的数据类型(续)
表4-1字段的数据类型(续)
在数据类型列表中选择此选项,将会启动向导进行定义,严格说不是一种数据类型.
与对应于查阅子段的主键大小相同的存储空间
一般为4字节
用于创建这样的字段,它允许用户使用组合框来选择来自其他表或来自值列表的值
查阅向导(LookupWizard)
3.字段的属性
字段的属性指字段的大小,外观和其他的一些能够说明字段所表示的信息和数据类型的描述
Access为大多数属性提供了默认属性设置,也可以改变默认设置或自行设置.
常用的简单属性有如下几种:
字段大小
可由用户设置此属性的数据类型有:
文本型,数字型和自动编号型;
文本型的字段大小属性可设置为1~255之间的任何整数,默认值为50;
数字型字段大小属性的可选项有:
字节,整型,长整型,单精度型,双精度型,同步复制ID和小数.默认值为长整型;
3.字段的属性(续)
自动编号型大小属性可选择长整型和同步复制型,默认为长整型;
索引
具有此属性的数据类型为:
文本型,数字型,货币型,日期/时间型;
索引属性可有三个取值:
无索引,有索引(有重复),有索引(无重复)
格式
除了OLE对象外,任何数据类型的字段都可设置格式;
Access为自动编号,数字,货币,日期/时间,是/否提供了预定义格式,可从列表中选择.
3.字段的属性(续)
4)小数位数
此属性要在格式设置完毕后定义才有效,提供了自动和1~15位的选项;
只影响显示的小数位数,不影响保存的小数位数.
默认值
指定在添加新记录时自动输入的值;
添加新记录时可接受默认值,也可键入新值覆盖它;
字段有效性规则
用来控制数据输入的有效性和正确性.
4.字段的说明
字段说明是指对每个字段一般有一个简短的说明性文字,用来说明这个字段所表示的具体信息,以及设计字段时的注释.
此说明会在向该字段添加数据时出现在状态栏中(此项设置可选)
字段属性示例图4-1
字段读者类型的属性
4.2.2通过输入数据创建表
通过"输入数据创建表"可以一次性完成表的创建和数据的输入,适合把记录在纸上的数据直接建成数据库的形式.
例4-2图书管理数据库包含如下"读者信息表",要求用"输入数据创建表"的方法创建完成
图4-7
操作步骤如下:
打开数据表视图
打开"图书管理数据库",选择"通过输入数据创建表"
命名字段
在空表的数据表视图中,双击空表的"字段1",将字段1命名为"读者ID",依次命名其它字段.
输入数据
在各字段中顺序输入数据.
保存表,将表保存为"读者信息表"
定义主键
系统弹出"尚未定义主键"警告框,单击"是",由系统自动定义一个主键.
4.2.3利用"设计器"自行设计表
表的设计视图中,可以对表的结构进行修改,并能够自行设计表
例4-3利用"设计器"为"图书管理数据库"创建一个如图4-8的"图书信息表"
图4-8
操作步骤:
打开设计视图
在数据库窗口中双击"使用设计器创建表"后,弹出表的设计视图.
定义字段
在"字段名称"列中输入字段名;
单击"数据类型"右边的按钮,显示出所有数据类型的列表框,从中选择一种合适的.
保存表
4.2.4导入已有数据创建表
可以导入和联接的数据源有:
MicrosoftAccess,MicrosoftExcel等.
在导入或连接数据之前,必须创建或打开Access2002数据库,以包含导入或连接的表.
在Access2002数据库中,导入的数据将用新表创建导入数据的一个副本,同时源表或源文件不会改变.
例:
在Excel中有如图所示的表,在图书管理数据库里,导入这个表.
1.打开数据库,切换到当前的图书管理数据库:
4.3表的关键字和记录
一,定义关键字
每个表都应该包含一个或一组这样的字段:
这些字段是表中所存储的每一条记录的唯一标识,该信息即称作表的主键.指定了表的主键之后,Access将阻止在主键字段中输入重复值或Null值.
1)系统自动定义关键字
2)用户自定义关键字
在"设计"视图中打开表.
选择将要定义为主键的一个或多个字段.若要选择一个字段,请单击所需字段的行选定器.
若要选择多个字段,请按住Ctrl键,然后对每个所需字段单击其行选定器.
单击工具栏上的"主键"
3)删除关键字
在"设计"视图中打开表.
单击当前主键的行选定器,然后单击工具栏上的"主键"
4.3表的关键字和记录
例:
4.3表的关键字和记录
二,创建索引
创建索引以快速查找和排列记录
在"设计"视图中打开表.
在窗口上部,单击要为其创建索引的字段.
在窗口下部,在"索引"属性框中单击,然后单击"有(有重复)"或"有(无重复)".
单击工具栏中的索引按钮
在索引对话框中选择所需要的索引姓名,设置属性
关闭索引对话框,保存修改
4.3表的关键字和记录
三,记录的编辑
如何打开一个表
我们已经会使用表向导建立表了.表虽然是建立好了,但一个空白的表没有任何用处,我们必须在建立好的表中输入数据,并学习一些关于表的基本操作.往表中添加数据之前要先打开它,前面已经学过如何打开一个数据库,首先启动Access,选择"打开已有文件",双击"图书管理数据库"打开它.在数据库窗口中单击"表"选项,可以看到在数据库右边的"创建方法和已有对象列表"列表框中.
4.3表的关键字和记录
要打开这个表有两种方法,一是用鼠标双击这个选项,另一个方法是先单击这个选项选中它,然后再单击数据库窗口上的"打开"按钮.打开这个表之后,我们就开始往里面输入数据.
4.3表的关键字和记录
如何在表中添加,修改和删除数据
我们先在表中输入几个数.在一个空表中输入数据时,只有第一行中可以输入.首先将鼠标移动到表上的字段和第一行交叉处的方格内,单击鼠标左键,方格内出现一个闪动的光标,表示可以在这个方格内输入数了.
4.3表的关键字和记录
如果输入时出现错误想改的话,只要按键盘上的方向键,将光标移动到要修改的值所在的方格,也可以直接用鼠标单击,选中方格内的数据,然后用键盘上的"DELETE"键将原来的值删掉,并输入正确的值就可以了.向表中输入数据是一件很细致的工作,千万不能马虎大意.简单的表,数据比较少,出错了容易检查;如果一张表很大,而且字段类型又比较复杂的话,输入的值出现错误,查起来就会非常麻烦.而且要是没有检查出来,让错误的数据留在表中,可能会给工作造成非常严重的后果.
4.4建立表之间的关系
表的规范化
1)字段的唯一性:
每个字段是不可再分的数据项
2)主关键字:
每一个表都应该有一个关键字
3)功能关系性:
表中的其它字段与主关键字是否直接相关
4)字段的独立性:
字段之间不存在相依性,
字段不存在相互依赖的例子如下:
年龄
出生年月
姓名
学号
2.表之间的关系
此处的关系指两个表的共有字段之间的关联性,只有定义了关系,才使得查询,窗体,报表可以显示多个表的信息.
关系通过匹配各个表中的关键字段的数据,对各表中的字段进行协调.
4.4建立表之间的关系
首先看一个例子:
"一对一"关系,比如下面的两个表:
某学校学生月副食补助和某学校学生月助学金
4.4建立表之间的关系
我们将这两个表中的数据进行汇总生成新的表:
"某学校学生月实发金额汇总":
由于姓名字段可能会出现重复的情况,所以只有通过不可能出现重复的值的字段"学号",才能将这两个表唯一地联系起来,保证"副食补贴"和"助学金"不至于错误地发放,这样"月副食补助表"中的一个学号就只对应"月助学金"中的一个学号,绝对不会弄错.这样两个表的关系很明显就是"一对一"了.
一对多和多对多,前面已经讲过.不再重复.
3.关系的创建
关系通过匹配字段的数据来建立,建立表之间的关系,必须满足下面的条件:
(1)相关联的字段名称不一定相同,但字段类型必须相同;
(2)相关联的字段若为数字型,二者还必须具有相同的"字段大小"属性设置;
(3)特殊,自动编号型字段可以和数字型字段匹配,但必须二者具有相同的"字段大小"属性配置.
创建关系的关键:
对表之间的内在联系进行分析,确定联系模式,一般还应该确保每个表都有主关键字或唯一索引.
遵循原则:
(1)"一对多"关系,要求只有一个表的相关字段是主关键字或唯一索引;("多"的一边加上"一"那边的关键字)
(2)"一对一"关系,要求两个表的相关字段都是主关键字或唯一索引;
(3)"多对多"关系,通过使用第三个表来创建,第3个表至少包括两个部分(既可以是字段也可以是字段组),一部分来自A表的关键字或唯一索引字段,另一部分来自B表的关键字或唯一索引字段,还可以增加其它字段.
例4-8
在"图书管理数据库",建立各表之间的关系.
分析:
图书管理数据库中,四张表之间的关系
规则:
"多"的一边加上"一"那边的关键字
关系窗口
关系的创建步骤:
关闭所有打开的表
选择需要创建关系的表
单击菜单栏"工具"/"关系",若还没有定义关系,则弹出"显示表"对话框,否则显示关系窗口.
在"显示表"对话框的"表"选项卡中,单击需要创建关系的表名称,再单击"确定"(或双击表名称),弹出关系窗口.
定义关系
①在"关系"窗口中,将要建立关系的字段从一个表中拖拽到相关表中的字段上,弹出"编辑关系"对话框.
单击"新建"按钮,弹出"新建"对话框,从下拉列表"左表名称"中选择"读者权限表",并从"左列名称"中选择"读者类型"字段,同样选择右表名称"读者信息表",右列名称"读者类型",单击"确定"回到"编辑关系"对话框.
"编辑关系"
对话框
"新建"对
话框
②选中"编辑关系"对话框中的"实施参照完整性"复选框,则将建立两个表之间的"一对多"的关系.
③如果用户想更改主表的记录时,系统自动更新相关表中的记录,就选择"级联更新相关字段"复选框.
④如果用户想删除主表的记录时,系统自动删除相关表的记录,则选择"级联删除相关字段".
⑤单击"创建",就建立了"读者权限表"和"读者信息表"的关系.
⑥重复①~⑤,依次定义各表之间的关系.
保存关系
删除关系
关系的完整性规则
实体完整性规则若属性A是基本关系R的主属性,则属性A不能取空值.
实体完整性规则规定基本关系的所有主属性不能取空,而不仅是主码整体不能取空.比如学生选课关系(学号,课程号,成绩)中,学号+课程号是主码,则"学号""课程号"两个属性都不能取空.
对整体完整性说明如下:
(1)实体完整性是针对基本关系的.一个表通常对应现实世界的一个实体集.
(2)现实世界的实体是可区分的,即具有唯一标识
(3)相应的,关系模型中,主码为唯一标识
(4)主码不为空.如果有空值,则说明存在某个不可标识的实体,与
(2)矛盾.
关系的完整性规则
参照关系,外码设F是基本关系R的一个或一组属性,但不是关系R的主码.如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系.
例:
学生,课程,学生与课程之间的多对多联系由下面三个关系表示(下划线为主键)
专业号
性别
姓名
学号
学分
课程名
课程号
成绩
课程号
学号
S学生关系
S课程关系
R选修关系
上述三个关系之间存在着属性的引用:
选修关系引用了学生关系的主码"学号"和课程关系的主码"课程号",而且,选修关系中的"学号"必须是确实存在的学生的学号,即学生关系中有该学生的记录."课程号"也必须是确实存在的课程的课程号,即课程关系中有该课程的记录.
选修关系中某些属性的取值需要参照其它关系的属性取值.
上述三个关系中,"学号"是学生关系的外码,学生关系为参照关系,选修关系为目标关系.
注意
目标关系的主码和参照关系的外码必须定义在同一个域上
参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
★或者取空值(F的每个属性值均为空)
★或者等于S中某个元组的主码值
例:
专业号
性别
姓名
学号
专业名