数据库基本理论

转载请表明出处:http://blog.csdn.net/u012637501
一、基本概念
1.数据:描述事物的符号纪录,有一定的结构,有型与值之分,如整型、实型、字符型等。
2.数据库:DataBase(DB),依照某种数据模型进行组织并存放到存储器的数据集合,是在计算机上组织、存储共享数据的方法。数据库具有较高的数据独立性,即不依赖于特定的数据库管理软。
3.数据库管理系统DataBase Management System(DBMS),即用来操纵和管理数据库的大型服务软件,不仅让我们能够实现对数据的快速检索和维护,还为数据的安全性、完整性、并发控制和数据恢复提供了保证。数据库管理系统的核心是一个用来存储大量数据的数据库,并提供数据定义语言、数据操作语言、数据控制语言来完成数据库管理系统功能。
    数据库管理系统功能:
    (1)数据模式定义:即为数据库构建其数据框架;
    (2)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段(数据定义语言实现);
    (3)数据操纵:为用户使用数据库的数据提供方法,如查询、插入、修改等(数据操作语言实现);
    (4)数据的完整性、安全性定义与检查(数据控制语言实现);
    (5)数据库的并发控制与故障恢复;
    (6)数据的服务:如拷贝、转存、重组、分析等。
常见的数据库服务软件:Oracle、MySQL(Oracle公司);SQL Server、Access(微软)
4.数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。数据库系统的基本特点数据的集成性、数据的高共享性域冗余性、数据独立性、数据统一管理域控制
5.关系型数据库
    以关系模型建立的数据库就是关系数据库(Relational Data Base,RDB),关系数据库系统的DBMS是关系型数据库管理系统(Relational DataBase Management System,RDBMS)。关系数据库中包含若干个关系,每个关系都由关系模式确定,每个关系模式包含若干个属性和属性对应的域,所以,定义关系数据库就是逐一定义关系模式,对每一关系模式逐一定义属性及其对应的域。关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。
    关系型数据库通常包含下列组件: a)客户端应用程序(Client) ;b)数据库服务器(Server)  ;c)数据库(Database)
(1)实体关系模型与E-R图
    在数据库的设计阶段,需要创建逻辑模型,关系数据库的逻辑模型叫做实体-关系模型。实体模型化最常用的工具是实体关系图,简称E-R(Entity-Relationship)图,它是一种简单的图形技术,用来定义数据库中需要的表、字段和关系。它用于数据库设计的第一步,与我们使用的具体的数据库管理系统无关。
   技术分享 
    概念模型是现实世界到机器世界的一个中间层次,概念模型中最常用的是E-R模型,E-R模型中主要概念:
 ★实体(Entity):客观存在并可以相互区分的事物叫实体,如一个个学生、一辆辆轿车。
 ★属性(Attribute):实体一般具有若干特征,称之为实体的属性,如学生具有的学号、姓名等属性;
 ★域(Domain):一个属性可能取值的范围称为这个属性的域;
 ★码(Key):能够唯一标识实体的属性或最小属性组称为码(关键字),可能存在多个候选码,设计者必须指明一个做主码
 ★联系:现实世界的事物之间是有联系的,这种联系在信息世界中反映为---实体型内部的联系和实体型之间的联系,两个实体型之间的联系有
        ※一对一联系(1:1) 例如:部门、经理
        ※一对多联系(1:n) 例如:部门、雇员
        ※多对多联系(m:n) 例如:学生、课程
技术分享
技术分享
举例:学生实体的E-R图
技术分享
技术分享
E-R图有如下优点:
    a.有效地搜集和表示组织的信息需求;
    b.提供一个容易理解的系统描述图;
    c.易于开发和提炼;
    d.明确定义了信息需求的范围;
    e.将业务需求信息与业务活动分开。

(2)关系模型的基本概念
    数据模型的任务描述实现现实世界中的实体及其联系。关系数据模型就是采用一个有序数组描述实体及其属性,用这种有序的集合描述一个实体集合,而采用定义在两个集合上的关系反映不同实体间的联系。
 ★关系:一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名;
 ★元组:二维表的每一行在关系中称为元祖,即行,又称"纪录"(Record);
 ★属性:二维表的每一列在关系中称为属性,即列,又称"字段"(Field);
 ★域(Domain):属性的取值范围称为域;
 ★关键字(Key):关系中能唯一区分、确定不同元组属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。注意:关键字的属性值不能取"空值"。
 ★候选关键字:关系中能够称为关键字的属性或属性组合可能不是唯一的,凡在关系中能够唯一区分、确定不同元祖的属性或属性组合,称为候选关键字。
 ★主关键字(Primary Key):在候选关键字中选定一个作为关键字,称为该关系的主关键字,关系中主关键字是唯一的。
 ★外关键字(Foreign Key):如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为本噶un系的外部关键字或外键(Foreign Key)。在关系数据库中,用外部关键字表示两个表间的联系。
技术分享
技术分享
(3)关系型数据库的优点
a)容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
b)使用方便:通用的SQL语言使得操作关系型数据库非常方便,程序员可以方便地在逻辑层面操作数据库,而完全不必理解其底层实现;
c)易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。
(4)关系模型的完整性约束
a)实体完整性:所谓实体完整性,就是一个关系模型中的所有元组都是唯一的,没有两个完全相同的元组,也就是一个二维表中没有两个完全相同行,也称为行完整性。
b)域完整性:域完整性就是对表中列数据的规范,也称列完整性,用于限制列的数据类型、格式以及取值范围。
c)参照完整性:当一个数据表中有外部关键字(即该列是另外一个表的关键字)时,外部关键字列的所有值,都必须出现在其所对应的表中。
d)用户定义完整性

总结1:表和字段、记录的关系?
        字段是事务的属性; 记录是事务本身; 表是事务的集合;
总结2:数据结构和数据库的区别?
    数据库是在应用软件级别(外存)研究数据的存储和操作;
    数据结构是在系统软件级别(主存)研究数据的存储和操作;

二、数据库的设计方法
1.数据库设计过程
◎需求分析
◎概念设计
◎逻辑设计
◎物理设计
◎实施与维护
2.E-R模型及其到关系模型的转化
技术分享
技术分享
(1)独立实体到关系模型的转化
    一个独立实体转化为一个关系模型(即一张关系表),实体码转化为关系表的关键属性,其他属性转化为关系表的属性,注意根据实际对象属性情况确定关系属性的取值域。
例如:对于下图所示的学生实体,应将其转化为关系:
    学生(学号,姓名,民族,籍贯),其中下划线标注的属性表示关键字。
技术分享
技术分享
(2)1:1联系转化为关系模型
    经理(姓名,民族,地址,出生年月,电话,名称)
    公司(名称,注册地,类型,电话,姓名)
    其中,名称和姓名分别是"公司"和"经理"两个关系模型的关键字,在"经理"和"公司"两个关系中,为了表明两者间的联系,各自增加了对方的关键字作为外部关键字。当两个表中出现下面的元组时,表明了张小辉是京广实业公司的经理。 (张小辉,汉,北京前门大街156号,48,68705633,京广实业公司) (京广实业公司,北京复兴门外大街278号,有限责任,65783265,张小辉)
技术分享
技术分享
(3)1:n联系到关系模型的转化 要转化1:n联系
    需要在n方(即1对多关系的多方)实体表中增加一个属性,将对方的关键字作为外部关键字处理即可. 如下图,“班级”与“学生”的联系是1:n的联系,学生方是n方,对图2-5进行转化,得到关系模型: 学生(学号,姓名,民族,出生年月,班号) 班级(班号,名称,年级,系,专业) 在学生表中增加“班级”中的关键字“班号”作为外部关键字。 
技术分享
技术分享
(4)m:n联系到关系模型的转化
    一个m:n联系要单独建立一个关系模式,分别用两个实体的关键字作为外部关键字。下图描述的学生与课程的联系是m:n联系,将E-R图转化为3个关系: 学生(学号,姓名,民族,出生年月) 课程(课程号,课程名,学时数) 学习(学号,课程号,成绩) 。
技术分享
技术分享
(5)多元联系到关系模型的转化 所谓多元联系
    即是说该联系涉及两个以上的实体。例如一个课程表,涉及班级、课程、教师、教室等4个实体。 例如一个课程表,涉及班级、课程、教师、教室等4个实体。转化时,应建立一个单独的关系表,将该联系所涉及的全部实体的关键字作为该关系表的外部关键字,再加上适当的其他属性,得到关系模式如下: 课程表(班号,课程号,教师号,教室号,周次)。  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。