数据库复习笔记1
数据模型
两类数据模型
(1)概念模型:信息模型,以用户的观点来对数据和信息建模。
(2)逻辑模型和物理模型:
概念模型
信息世界中的基本概念
(1)实体(Entity):客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
(2)属性(Attribute):实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3)码(Key):唯一标识实体的属性集称为码。
(4)域(Domain) :属性的取值范围称为该属性的域。
(5)实体型(Entity Type) :用实体名及其属性名集合来抽象和刻画同类实体称为实体型
(6)实体集(Entity Set) :同一类型实体的集合称为实体集
(7)联系(Relationship): 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多和多对多等多种类型
常用E-R图来描述现实世界的概念模型。
E-R图绘图规范
(1)矩形框:表示实体,在框中计入实体名
(2)菱形框:表示联系,在框中计入联系名,联系有1-n,1-1,n-1,n-n;
(3)椭圆形框:表示实体或联系的属性。
数据模型的组成要素
数据结构
数据结构:描述数据库的组成对象,以及对象之间的联系
描述的内容
- 与对象的类型、内容、性质有关
- 与数据之间联系有关
数据结构是对系统静态特性的描述
数据操作
对数据库中各种对象(型)的实例(值)允许执行的 操作的集合,包括操作及有关的操作规则.
数据操作类型:查询,更新(包括插入、删除、修改);
数据的完整性约束条件:
数据完整性:存储在数据库中的所有数据值均正确的状态。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
数据完整性分为四类:
- 实体完整性(实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键,唯一索引 unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人.。)
- 域完整性(域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域完整性可以确保不会输入无效的值.。)
- 参照完整性(参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。参考完整性维护表间数据的有效性,完整性,通常通过建立外部键联系另一表的主键实现,还可以用触发器来维护参考完整性)
- 用户定义的完整性。
参考链接:https://blog.csdn.net/u013634252/article/details/80696882
常用数据模型
层次模型
网状模型
关系模型
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
关系(Relation)
一个关系对应通常说的一张表
元组(Tuple)
表中的一行即为一个元组
属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key)
也称码键。表中的某个属性组,它可以唯一确定一个元组
域(Domain)
是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量
元组中的一个属性值。
关系模式
对关系的描述
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系名,年级)
函数依赖于范式
完全函数依赖于部分函数依赖
范式
一范式:实体中的某个属性不能有多个值或者不能有重复的属性。
关系数据库
码
候选码(Candidate key):关系表中的某一属性组的值能唯一地标识一个元组。
全码: 最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)
主属性:候选码的诸属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)
或非码属性(Non-key attribute)
三类关系
基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
查询表
查询结果对应的表
视图表
由基本表或其他视图表导出的表,是虚表,不对
应实际存储的数据
运算关系
选择
例1:查询信息系(IS系)全体学生
σSdept = ‘IS’ (Student)
或 σ5 =‘IS’ (Student)
结果:
[例2] 查询年龄小于20岁的学生
σSage < 20(Student)
或 σ4 < 20(Student)
投影运算符
投影运算符的含义
从R中选择出若干属性列组成新的关系
[例3] 查询学生的姓名和所在系
即求Student关系上学生姓名和所在系两个属性上的投影
结果:
连接
自然连接和等值连接差不多。
除
数据,数据对象,数据元素,数据项的理解
参考链接:https://blog.csdn.net/baidu_31657889/article/details/92797055
假设有两张表,A表为人员表,B表为课程表, 表的格式如下:
项目 | Value | 身高 | 课程代号 |
---|---|---|---|
小明 | 男 | 180 | A |
小红 | 女 | 180 | A |
小绿 | 男 | 180 | B |
课程代号 | 课程名 |
---|---|
A | 语文 |
B | 数学 |
重点:
这两张表就是数据
而单独的一张表就称为数据对象,即人员表是一个数据对象,课程表也是一个数据对象
而每张表中的每一行就称为数据元素
而姓名,性别,身高,课程代号,课程名就称为数据项