一、数据库绪论
数据库的四个概念
- 数据(Data):数据是数据库中存储的基本对象,它是描述事物的符号记录。
- 数据库(Database):数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 数据库管理系统(DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它是一个大型复杂的软件系统,它主要用于科学地组织和存储数据、高效地获取和维护数据。
- 数据库系统(DBS):数据库系统主要是由数据库、数据库管理系统(及其开发工具)、数据库管理员以及应用程序所构成的一套人机系统。
信息世界中的基本概念
- 实体(Entity):客观存在并可相互区别的事物称为实体。
- 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。(94002268,张山,男,1976,计算机系,1994)这些属性组合起来表征了一个学生。
- 码(Key):唯一标识实体的属性集称为码。例如学号是学生实体的码。
- 域(Domain):属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合,年龄的域为小于38的整数,性别的域为(男,女)。
- 实体型(Entity Type) :具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。
- 实体集(Entity Set):同型实体的集合称为实体集。例如,全体学生就是一个实体集。
- 联系(Relationship) :在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。
两个实体型之间的联系
两个实体型之间的联系可以分为三类:
一对一联系(1 : 1)
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1 : 1。例如,学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。
一对多联系(1 : n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1 : n。例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
多对多联系(m : n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m : n。
常见的数据模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model))
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
- 半结构化数据模型(Semistruture Data Model)
数据库系统结构
-
从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构。
-
从数据库最终用户角度看,数据库系统的结构分为:
- 单用户结构
- 主从式结构
- 分布式结构
- 客户-服务器结构
- 浏览器-应用服务器结构
- 数据库服务器多层结构
数据库系统的组成
- 数据库
- 数据库管理系统(及其开发工具)
- 数据库管理员
- 应用程序
数据库管理员职责
- 决定数据库中的信息内容和结构。
- 决定数据库的存储结构和存取策略。
- 定义数据的安全性要求和完整性约束条件。
- 监控数据库的使用和运行。
- 数据库的改进和重组。
二、关系型数据库
域(Domain): 域是一组具有相同数据类型的值的集合。
笛卡尔积(Cartesian Product): 给定一组域D1,D2,…,Dn,允许其中某些域是相同的。D1,D2,…,Dn的笛卡尔积为: D1×D2×…×Dn ={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},笛卡尔积是所有域的所有取值的一个组合,它不能重复。
- 元组(Tuple):笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
- 分量(Component):笛卡尔积中每一个元素(d1,d2,…,dn)中的每一个值di叫作一个分量。
- 基数(Cardinal number):若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
关系(Relation): D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn),其中,R为关系名,n为关系的目或度(Degree)。
什么是关系模式?
关系模式是对关系的描述。如元组集合的结构,完整性约束条件。
关系操作
常用关系操作:
- 查询操作:选择、投影、连接、除、并、差、交、笛卡尔积(选择、投影、并、差、笛卡尔基是5种基本操作,交、连接、除,可以用5种基本运算来表达,引进它们并不增加语言的能力,但可以简化表达)
- 数据更新:插入、删除、修改
三、SQL语言
SQL的功能
SQL的结构
SQL支持关系数据库三级模式结构: