您好,欢迎访问三七文档
第1章数据库基础概述数据库系统简介1.1数据库系统的组成1.2关系型数据库1.3关系型数据库的设计1.4数据库技术研究解决计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余,实现数据共享,保障数据安全以及高效地检索数据和处理数据。1.1数据库系统简介数据管理是指对数据的组织、存储、维护和使用等。数据管理的方法分为三个阶段:人工管理阶段、文件管理阶段和数据库系统阶段。1.2数据库系统的组成一个数据库系统(DatabaseSystem)一般是由数据库(Database)、数据库管理系统(DatabaseManagementSystem,DBMS)以及数据库用户组成。广义地说,数据库系统是由计算机硬件、操作系统、数据库管理系统以及在它支持下建立起来的数据库、数据库应用程序、用户和维护人员组成的一个整体。1.2.1数据库1.数据库的基本概念数据库是存储在计算机系统内的有结构的数据的集合。这些数据是被数据库管理系统按一定的组织形式存放在各个数据库文件中的。数据库是由很多数据库文件以及若干辅助操作文件组成的。2.数据库的基本模型基本的数据库模型有三种:网状数据库模型、层次数据库模型和关系型数据库模型。关系型数据库模型是以二维矩阵来存储数据的,行和列形成一个关联的数据表。1.2.2数据库管理系统数据库管理系统是指在操作系统的支持下帮助用户建立、使用和管理数据库的软件系统。通常包含数据描述语言、数据操作语言以及管理和控制程序三个组成部分。1.数据描述语言(DataDescriptionLanguage)用来描述数据库的结构,供用户建立数据库。2.数据操作语言(DataManipulationLangUage,DML)供用户对数据库进行数据的查询(数据的检索和统计等)和处理(数据的增加、删除和修改等)等操作。3.管理和控制程序包括安全、通信控制和工作日志等。1.2.3数据库系统的用户1.系统程序员2.数据库管理员3.应用程序员4.操作员1.2.4数据库系统的网络结构1.MainFrame大型数据库2.本地小型数据库3.分布式数据库4.客户机/服务器数据库1.3关系型数据库关系型数据库是指一些相关的表和其他数据库对象的集合。在关系型数据库中,信息存放在二维表格结构的表中,一个关系型数据库包含多个数据表,每一个表包含行(记录)和列(字段)。关系型数据库都有多个表。关系型数据库所包含的表之间是有关联的,关联性由主键、外键所体现的参照关系实现。关系型数据库不仅包含表,还包含其他数据库对象,例如关系图、视图、存储过程和索引等。1.3.2关系型数据库与表关系型数据库是由多个表和其他数据库对象组成的。表是一种最基本的数据库对象,是由行和列组成的,表中的每一行通常称为一条记录,表中的每一列称为一个字段,表头的各列给出了各个字段的名称。横的一行称为一个记录纵的一列称为一个字段表头给出字段名图1-1学生信息表1.3.3主键与外键表中的每行记录都必须是惟一的,而不允许出现完全相同的记录。通过定义主键(PRIMARYKEY)来保证记录(实体)的惟一性。一个表的主键由一个或多个字段组成,其值具有惟一性,而且不允许取空值(NULL),主键的作用是惟一地标识表中的每一条记录。为了惟一地标识实体的每一个实例,每个数据库表都应当有一个主键,而且只能有一个主键。有时表中可能没有一个字段具有惟一性,没有任何字段可以作为表的主键。在这种情况下,可以考虑使用两个或两个以上字段的组合作为主键。一个关系型数据库可能包含多个表,可以通过外键(FOREIGNKEY)使这些表之间关联起来。如果在表A中有一个字段对应于表B中的主键,则该字段称为表A的外键。图1-2主键与外键的关系1.3.4字段约束设计表时,可对表中的一个字段或多个字段的组合设置约束条件,让SQLServer检查该字段的输入值是否符合这个约束条件。约束分为表级约束和字段级约束两种。表级约束是一个表中几个字段的约束,字段级约束则是对表中一个字段的约束。几种常见的约束形式。1.PRIMARYKEYPRIMARYKEY用来保证表中每条记录的惟一性。可用一个字段或多个字段(最多16个字段)的组合作为这个表的主键。用单个字段作为主键时,使用字段级约束;用字段组合作为主键时,则使用表级约束。每个表只能有一个主键。如果不在主键字段中输入数据,或输入的数据在前面已经输入过,则这条记录将被拒绝。2.FOREIGNKEYFOREIGNKEY字段与其他表中的主键字段或具有惟一性的字段相对应,其值必须在所引用的表中存在,而且所引用的表必须存放在同一关系型数据库中。如果在外键字段中输入一个非NULL值,但该值在所引用的表中并不存在,则这条记录也会被拒绝。外键字段本身的值不要求是惟一的。3.NULL与NOTNULL若在一个字段中允许不输入数据,则可以将该字段定义为NULL,如果在一个字段中必须输入数据,则应当将该字段定义为NOTNULL。出现NULL值意味着用户还没有为该字段输入值,NULL值既不等价于数值型数据中的0,也不等价于字符型数据中的空字符串。4.UNIQUE如果一个字段值不允许重复,则应当对该字段添加UNIQUE约束。与主键不同的是,在UNIQUE字段中允许出现NULL值,但为保持惟一性,最多只能出现一次NULL值。5.CHECKCHECK约束用于检查一个字段或整个表的输入值是否满足指定的检查条件。在表中插入或修改记录时,如果不符合这个检查条件,则这条记录将被拒绝。6.DEFAULTDEFAULT约束用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。若对一个字段添加了NOTNULL约束,但又没有设置DEFAULT约束,就必须在该字段中输入一个非NULL值,否则将会出现错误。1.3.5数据完整性规划关系型数据库表时有两个重要步骤:其一是如何确定一个字段的有效值,其二是决定如何强制实施字段的数据完整性。数据完整性分为以下4种类型。1.实体完整性实体完整性(EntityIntegrity)用于保证关系型数据库表中的每一条记录都是惟一的,建立主键的目的就是为了实施实体完整性。一个表中的主键不能取空值,也不能取重复的值。2.域完整性域完整性(DomainIntegrity)用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内。3.参照完整性参照完整性(ReferentialIntegrity)是用于确保相关联的表间的数据保持一致。当添加、删除或修改关系型数据库表中的记录时,可以借助于参照完整性来保证相关联的表之间的数据一致性。4.用户自定义完整性用户自定义完整性(User-definedIntegrity)是一种强制数据定义。1.3.6表的关联表之间的关联方式分为以下3种类型。1.一对一关联(one-to-one)设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中只能有一条记录与之对应;反过来,对于表B中的任何一条记录,表A中也只能有一条记录与之对应,则称这两个表是一对一关联的。2.一对多关联(one-to-many)设在一个关系型数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中却只能有一条记录与之对应,则称这两个表是一对多的关联。(a)学生表一(b)学生表二(c)成绩表(d)课程表图1-3关系型数据库表的关联3.多对多关联(many-to-many)设一个关系型数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中也有多条记录与之对应,则称这两个表是多对多关联的。1.4关系型数据库的设计1.4.1E-R模型E-R模型(Entity-Relationship)即实体—联系模型,是1976年P.P.S.Chen提出的。这种模型用E-R图来表示实体及其联系,广泛用于数据库设计中。一个E-R图由实体、属性和联系三种基本要素组成。(1)实体:即现实世界中存在的、可以相互区别的人或事物。一个实体集合对应于数据库中的一个表,一个实体则对应于表的一行,也称为一条记录。在E-R图中,实体用矩形框表示。(2)属性:表示实体或联系的某种特征。一个属性对应于数据库表中的一列,也称为一个字段。在E-R图中,属性用椭圆表示。(3)联系:即实体之间存在的联系。在E-R图中,联系用菱形框表示。联系的类型可以是1-1、1-n、n-m等。学生姓名电话号码性别家庭住址图1-4学生实体E-R图作E-R图的一般步骤是,先确定实体集与联系集,把参加联系的实体集连接起来,然后分别连上诸实体的属性和联系的属性。当实体集与联系较多时,为了E-R图的整洁和可读性起见,有时可以略去属性。学生课程教员学号姓名年龄性别学习任课课程号课程名学时数姓名年龄(学号、课程号、分数)年龄教员编号图1-5一个E-R图例1.4.2数据库设计过程数据库的设计都要经历需求分析、概念设计、实现设计和物理设计几个阶段。1.需求分析目的是分析系统的需求。该过程的主要任务是从数据库的所有用户那里收集对数据的需求和对数据处理的要求,并把这些需求写成用户和设计人员都能接受的说明书。2.概念设计目的是将需求说明书中关于数据的需求,综合为一个统一的概念模型。首先根据单个应用的需求,画出能反映每一应用需求的局部E-R模型。然后把这些E-R模型图合并起来,消除冗余和可能存在的矛盾,得出系统总体的E-R模型。3.实现设计目的是将E-R模型转换为某一特定的DBMS能够接受的逻辑模式。对关系型数据库,主要是完成表的关联和结构的设计。4.物理设计目的在于确定数据库的存储结构。主要任务包括:确定数据库文件和索引文件的记录格式和物理结构,选择存取方法,决定访问路径和外存储器的分配策略等。1.4.3关系型数据库规范化分析关系规范化理论来指导关系型数据库的设计。E.F.Codd在1970年提出的关系型数据库设计的三条规则,通常称为三范式(NormalForm),即第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。这3个范式的等级有高低之分,其中第三范式最高,第二范式次之,第一范式最低。在1NF的基础上又满足某些特性才能达到第二范式的要求,在2NF的基础上再满足一些要求才能达到第三范式的要求。将这3个范式运用于关系型数据库设计中,能够简化设计过程,并达到减少数据冗余、提高查询效率的目的。1.第一范式如果一个关系型数据库表中的每一字段值都是单一的,则称这个表属于第一范式。按照第一范式的要求,表中的每个字段都应当是不可再分的。图1-8符合1NF的数据库表2.第二范式如果一个数据库表满足第一范式的要求,而且它的每个非主键字段完全依赖于主键,则称这个数据库表属于第二范式。第二范式仅用于以两个或多个字段的组合作为数据库表的主键的场合,按照第二范式的要求,在一个数据库表中,每一个非主键字段必须完全依赖于整个主键(亦即几个字段的组合),而不是只依赖于构成主键的个别字段(这称为“部分依赖”)。只要主键值相同,其他所有非主键字段值也必然相同;不可能在这个表中找到这样两条记录,它们的主键值相同,却有某个非主键字段值不相同。图1-9学生信息表student_Info图1-10成绩信息表result_Info图1-11课程信息表course_Info3.第三范式如果一个数据库表满足第二范式的要求,而且该表中的每一个非主键字段不传递依赖于主键,则称这个数据库表属于第三范式。所谓传递依赖就是指在一个数据库表中有A、B、C三个字段,如果字段B依赖于字段A,字段C又依赖于字段B,则称字段C传递依赖于字段A,并称在该数据库表中存在传递依赖关系。在一个数据库表中,若有一个非主键字段依赖于另一个非主键字段,则该字段必然传递依赖于主键,因而该数据库表就不属于第三范式。第三范式的实际含义是要求非主键字段之间不应该有从属关系。
本文标题:数据库基础概述.
链接地址:https://www.777doc.com/doc-2332739 .html