资源描述
第一章 数据库基础概述
课题: 数据库基础概述
目的要求:
掌握数据库的基础概念,组成,分类
掌握关系数据库的特点的功能
掌握数据库设计的一般方法
了解数据管理的发展过程
重点难点:
数据库系统的组成,关系数据库的特点
课外作业布置:
复习本节课内容,查找相关资料,借阅参考书籍
第1教案 数据库基础概述
预备知识(小测试)
1、有M个人一起去旅游,要住宾馆,假设一个房间只能住N个人,请问要开几个房间?
2、假设给你3瓶啤酒,商家规定,2个空酒瓶可以兑换1瓶啤酒,在不另外掏钱的情况下,最多可以喝到几瓶啤酒?
3、经理安排你组织一台2小时的晚会,请你设计出方案。
1.1 数据库系统简介
思考:全校学生成绩管理系统包括哪些数据?应该如何保存?
数据管理:对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题,数据管理技术的发展过程:人工管理阶段(40年代中--50年代中)、文件系统阶段(50年代末--60年代中)、数据库系统阶段(60年代末--现在)。
一、人工管理
产生的背景:应用需求(科学计算),硬件水平(无直接存取存储设备),软件水平(没有操作系统),处理方式(批处理)。
主要特点:数据包含在程序中,程序员设计程序的同时也要考虑数据的存贮,包括:
数据的管理者:应用程序,数据不保存。
数据面向的对象:某一应用程序
数据的共享程度:无共享、冗余度极大
数据的独立性:不独立,完全依赖于程序
数据的结构化:无结构
数据控制能力:应用程序自己控制
二、文件系统
产生的背景:应用需求(科学计算、管理 ),硬件水平(磁盘、磁鼓),软件水平(有文件系统),处理方式(联机实时处理、批处理)。
主要特点:
数据的管理者:文件系统,数据可长期保存
数据面向的对象:某一应用程序
数据的共享程度:共享性差、冗余度大
数据的结构化:记录内有结构,整体无结构
数据的独立性:独立性差,改变数据的逻辑结构则必须修改应用程序
数据控制能力:应用程序自己控制
三、数据库系统
产生的背景:应用背景(大规模管理 ),硬件背景(大容量磁盘),软件背景(有数据库管理系统),处理方式(联机实时处理,分布处理,批处理)。
主要特点:
数据的管理者:DBMS(数据库管理系统)
数据面向的对象:现实世界
数据的共享程度:共享性高
数据的独立性:高度的物理独立性和一定的逻辑独立性
数据的结构化:整体结构化
数据控制能力:由DBMS统一管理和控制
数据的高共享性的好处:降低数据的冗余度,节省存储空间
避免数据间的不一致性,使系统易于扩充,独立性强,数据与程序独立存放。
四、数据独立性
物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
数据结构化:数据的结构化是数据库的主要特征之一。数据库中实现的是数据的真正结构化,数据的结构用数据模型描述,无需程序定义和解释。数据可以变长。数据的最小存取单位是数据项(data item),也称为字段(field),列(column)。
五、DBMS对数据的控制功能
数据的安全性(Security)保护:使每个用户只能按指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄密和破坏。
数据的完整性(Integrity)检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系。
并发(Concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
数据库恢复(Recovery):将数据库从错误状态恢复到某一已知的正确状态。
1.2 数据库系统的组成
一、数据库的定义
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合、数据库由若干数据库文件和辅助文件组成。
1、分类:网状,层次,关系,共3类,称为3种数据模型,最重要的是关系数据库,关系数据库的主要内容就是表(table)。
数据库的特征:
数据按一定的数据模型组织、描述和储存,逻辑性(logic)强;共享性(shareable)好,冗余度(redundancy)较小;数据独立性(independency)较高;易于扩充(expansion)。
2、数据库的分类即数据库的基本模型:
网状数据库模型:每个记录看成是一个节点,节点与节点之间可建立关联,形成网状结构。
层次数据库模型:分层管理数据,形成单位行政机构、家族式数据结构。
关系型数据库模型:以二维表形式组织数据,每一行称为一条记录,每一列是一个属性,称为一个字段。
二、数据库管理系统(Database Management System-DBMS)
在操作系统的支持下,帮助用户建立、使用和管理数据库的软件系统。通常包含数据描述语言(DDL)、数据操作语言(DML)以及管理和控制程序三个组成部分。
数据描述语言(DML-Data Description Language) :用来描述数据库的结构,供用户建立数据库。
数据操作语言(DML-Data Manipulation LangUage):供用户对数据库进行数据的查询(数据的检索和统计等)和处理(数据的增加、删除和修改等)等操作。
管理和控制程序:包括安全管理、通信控制和工作日志管理等程序。
三、数据库系统的用户
数据库系统的用户,共有4类:
系统程序员:负责整个数据库系统的设计工作,根据用户的需求安装数据库管理系统,建立维护数据库管理系统及相关软件的工具,设计合适的数据库及表文件,对整个数据库存取权限做出规划。
数据库管理员(DBA-Database Administrator):DBA是支持数据库系统的专业技术人员,决定数据库结构,维护数据,管理帐号,备份及恢复数据,提高系统效率。
应用程序员:负责编写访问数据库的面向终端用户的应用程序,是用户可以友好地使用数据库。可以使用Visual Basic、Java、.net、Delphi、PHP、ASP、JSP等语言访问数据库。
操作员:操作应用程序软件来访问数据库,利用数据库系统完成日 常工作,不关心数据库的具体格式及其维护和管理问题。
1.3 关系型数据库
一、关系数据库定义
关系型数据库概念是由E.F.Codd博士提出的。1976年6月他发表了《关于大型共享数据库数据的关系模型》的论文,在论文中他阐述了关系数据库模型及其原理,并把它用于数据库系统中。
数据库系统的发展经历了三个阶段:网状数据库、层次数据库和关系数据库。而关系型数据库之所以能被广泛的应用,是因为它将每个具有相同属性的数据独立地存储在一个表中。它解决了层次型数据库的横向关联不足的缺点,避免了网状数据库关联过于复杂的问题。
关系型数据库是指一些相关的表和其他数据库对象的集合。
二、关系数据库与表
数据库是由多个表和其他数据库对象(如约束关系,用户,安全性,日志)组成的。
在数据库中,表是一种最基本的数据库对象,类似于电子表格,是由行和列组成的,除第一行(表头)以外,数据库表中的每一行通常称为一条记录(也叫无组),表中的每一列称为一个字段,表头的各列给出了各个字段的名称,可以称为表结构。
三、主键与外键
关系模型要求数据库表中的每行记录都必须是惟一的,而不允许出现完全相同的记录。在设计数据库表时,可以通过定义主键(Primary Key)来保证记录(实体)的惟一性。每个数据库表都有且只有一个主键。
一个关系型数据库可能包含多个表,可以通过外键(Foreign Key)使这些表之间关联起来。 下图的 “成绩表”中有两个外键,一个是学号“student_id”,其详细信息存储在“学生表”中;另一个是课程编号“course_no”,其详细信息存储在“课程表”中。 “成绩表”和“学生表”各有一个“学号”字段,该字段在“成绩表”中是外键,在“学生表”中则是主键,但这两个字段的数据类型以及字段宽度必须完全一样,字段的名称可以相同,也可以不相同。
四、字段约束
设计数据库表时,可对表中的一个字段或多个字段的组合设置约束条件,让SQL Server检查该字段的输入值是否符合这个约束条件。约束分为表级约束和字段级约束两种。表级约束是一个表中几个字段的约束,字段级约束则是对表中一个字段的约束。
PRIMARY KEY:即主键,用来保证表中每条记录的唯一性。设计一个数据库表时,可用一个字段或多个字段(最多16个字段)的组合作为这个表的主键 。用单个字段作为主键时,使用字段约束;用字段组合作为主键时,则使用表级约束。
FOREIGN KEY :外键字段与其他表中的主键字段或具有唯一性的字段相对应,其值必须在所引用的表中存在,而且所引用的表必须存放在同一数据库中。
NULL与NOT NULL (空值/非空值):若在一个字段中允许不输入数据,则可以将该字段定义为NULL,如果在一个字段中必须输入数据,则应当将该字段定义为NOT NULL。NULL值既不等价于数值型数据中的0,也不等价于字符型数据中的空字符串。
UNIQUE (唯一):如果一个字段值不允许重复,则应当对该字段添加UNIQUE约束。与主键不同的是,在UNIQUE字段中允许出现NULL值,但为保持唯一性,最多只能出现一次NULL值。
CHECK (检查):CHECK约束用于检查一个字段或整个表的输入值是否满足指定检查条件。
DEFAULT (默认值):DEFAULT约束用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。
五、数据完整性
实体完整性(Entity Integrity):用于保证数据库表中的每一条记录都是唯一的,建立主键的目的就是为了实施实体完整性。一个表中的主键不能取空值,也不能取重复的值。例如,选择“学号”字段作为“学生表”中的主键时,每一条记录中的“学号”字段值就应输入一个非空值,而且必须是各不相同的。
域完整性(Domain Integrity):用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内。
参照完整性(Referential Integrity):用于确保相关联的表间的数据保持一致。当添加、删除或修改数据库表中的记录时,可以借助于参照完整性来保证相关联的表之间的数据一致性。例如,在“学生表”中修改了某个学号,就必须在“成绩表”或其他相关联的表进行相同的修改,否则其他表中的相关记录就会变成无效记录。
用户自定义完整性(User-defined Integrity):这是由用户自己定义的完整性,不同于前面3种完整性,也可说是一种强制数据定义。
六、表的关联
一对一关联(one-to-one):设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中只能有一条记录与之对应;反过来,对于表B中的任何一条记录,表A中也只能有一条记录与之对应,则称这两个表是一对一关联的。
一对多关联(one-to-many):设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中却只能有一条记录与之对应,则称这两个表是一对多的关联。
多对多关联(many-to-many):设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中也有多条记录与之对应,则称这两个表是多对多关联的。
1.4 关系型数据库设计
一、E-R模型
ER模型有三个基本要素:
实体(Entity):即现实世界中存在的、可以相互区别的人或事物。一个实体集合对应于数据库中的一个表,一个实体则对应于表的一行,也称为一条记录。在E-R图中,实体用矩形框表示。
属性(Property):表示实体或联系的某种特征。一个属性对应于数据库表中的一列,也称为一个字段。在E-R图中,属性用椭圆表示。
联系(Relation):即实体之间存在的联系。在E-R图中,联系用菱形框表示。类型可以是1-1、1-n、n-m。
二、数据库设计过程
需求分析:主要任务是从数据库的所有用户那里收集对数据的需求和对数据处理的要求,并把这些需求写成用户和设计人员都能接受的说明书。
概念设计:目的是将需求说明书中关于数据的需求,综合为一个统一的概念模型。首先根据单个应用的需求,画出能反映每一应用需求的局部E-R模型。然后把这些E-R模型图合并起来,消除冗余和可能存在的矛盾,得出总体的E-R模型。
实现设计:目的是将E-R模型转换为某一特定的DBMS能够接受的逻辑模式。对关系型数据库,主要是完成表的关联和结构的设计。
物理设计:确定数据库的存储结构。主要任务:确定数据库文件和索引文件的记录格式和物理结构,选择存取方法,决定访问路径和外存储器的分配策略等。这些工作大部分可由 DBMS完成,仅有一小部分工作由设计人员来完成。例如,物理设计应确定字段类型和数据库文件的长度。实际上,由于借助 DBMS,这部分工作难度比实现设计要容易得多。
三、关系数据库规范化分析
在实现设计阶段,常常使用 E.F.Codd的关系规范化理论来指导关系数据库的设计。E.F.Codd在1970年提出的关系型数据库设计的三条规则,通常称为三范式(Normal Form),即第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
第一范式(1NF):如果一个数据库表中的每一字段值都是单一的,则称这个数据库表属于第一范式。按照第一范式的要求,数据库表中的每个字段都应当是不可再分的。
第二范式(2NF):如果一个数据库表满足第一范式的要求,而且它的每个非主键字段完全依赖于主键,则称这个数据库表属于第二范式。
完全依赖:设X,Y是关系R的两个属性集合(如学生表中的“学号”和“姓名”),当任何时刻R中的任意两个元组(行)中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。
提问:分析是不是2NF的:职工联系表(编号,姓名,性别,部门,家庭地址,邮政编码,部门经理)
第三范式(3NF):如果一个数据库表满足第二范式的要求,而且该表中的每一个非主键字段不传递依赖于主键,则称这个数据库表属于第三范式。
传递依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(且Y!→X),Y→Z,则称Z传递函数依赖于X。
分析:职工联系表(编号,姓名,性别,部门,家庭地址,邮政编码,部门经理)
编号→家庭地址 编号→部门
家庭地址→邮政编码 部门→部门经理
则可以推出 编号→邮政编码 编号→部门经理
本章总结
学习内容回顾:
1、基本概念:数据库系统DBS,DBS的组成
2、关系数据库:与表的关系?主键?外键?字段约束?数据完整性?表的关联?
3、关系数据库的设计:E-R模型?规范化分析?范式?
第1次作业:P13-1,3,4,5,下周三交(上课时带来交学习委员)
第2教案 实训1:创建数据库和表
实训1:创建数据库和表
(一)、实训目的
了解企业管理器和查询分析器的使用。
掌握用企业管理器管理数据库的方法。
(二)、实训内容
练习使用服务管理器来启动,暂停和停止服务器。
从“开始”→“程序”→“Microsoft SQL Server”→“服务管理器”,打开SQL Server服务管理器,点击“开始/继续”前面的按钮启动服务。
图1 SQL Server服务管理器
练习使用企业管理器创建一个名为Booksys的数据库。
使用SQL Server 2005的企业管理器创建“图书管理系统数据库(BookSys)”,该数据库由两个数据文件和一个日志文件组成。具体参数如表1所示。
具体操作步骤为:从“开始”→“程序”→“Microsoft SQL Server”→“企业管理器”,打开“控制台根目录”,选中“数据库”文件夹点击鼠标右键,选择“新建数据库”,如图2所示。
表1 图书管理系统数据库参数表
文件参数
数据文件
日志文件
逻辑名称
BookSysData1
BookSysData2
BookSysLog
物理名称
C:\DB\BookSysD1.MDF
D:\DB\BookSysD2.NDF
E:\DB\BookSysL.LDF
初始尺寸
100MB
200MB
100MB
最大尺寸
500MB
600MB
无限制
增长幅度
20MB
30MB
20%
图2 新建数据库
打开图3所示的窗口,在常规选项卡的名称文本框中输入数据库的名称。
图3 创建数据库:输入数据库名称
打开数据文件选项卡,创建数据文件1和数据文件2,如图4、5所示。
图4 创建数据库:数据文件1
图5 创建数据库:数据文件2
打开事务日志选项卡,创建事务日志文件,如图6所示。
图6 创建数据库:日志文件
点击“确定”按钮即可成功创建数据库。
在新建的Booksys数据库中创建3个表:BOOK,READER,BORROW,指定表中的属性,为属性选择合适的数据类型,是否允许空值,定义主码和外码,使三个表联系起来,方便以后实验中的查询。
展开阅读全文