数据库的理论知识
数据库技术的出现是为了解决数据维护问题的,使用数据库进行数据的管理要比使用手工方式数据管理更加方便。
什么是数据库?
高效的存储和处理数据的介质(介质主要是两类:磁盘和内存)
数据库的分类?
数据库基于存储介质的不同:进行了分类,分为两类:关系型数据库(SQL)和非关系型数据库(NoSQL:Not Only SQL)
不同的数据库阵营的产品有哪些?
- 关系型数据库
- 大型:Oracle,DB2
- 中型:SQL-SERVER,MySQL
- 小型:access
- 非关系型数据库:MongoDB,memcached,redis(同步到磁盘)
- 关系型数据库
两种数据库阵营的区别?
- 关系型数据库:安全(保存在磁盘,基本不会丢失),容易理解,比较浪费空间
- 非关系型数据库:效率高,但是不安全(断电,数据会丢失)
模型分类
数据模型是对客观世界中某些事物的特征数据抽象和模拟,分为概念模型和物理数据模型两个方面:(目的不同)
- 概念模型:信息模型,主要用于数据库的设计
- 逻辑模型和物理模型:包括层次模型、网状模型、关系模型、面向对象模型、对象关系模型,主要是按照计算机系统的观点对数据建模
其中数据模型通常由数据结构、数据操作、完整性约束这三部分组成。
数据结构(数据存储的问题,二维表):
指的是对象和对象之间的联系,可以描述出一个客观事物的类型、内容有关的数据项,包括彼此之间的联系。
数据操作(所有的SQL语句):
针对于单条记录或者多条记录进行操作,主要就是两类:查询、更新,这些全部由SQL定义了。
完整性约束(表内数据约束,表与表之间的约束(外键)):
保证表中的数据是有意义的。
##三级模式及二级映射
注:
考题就是画圈的地方
用户级对应外模式
概念级对应模式,又称为概念模式或逻辑模式
物理级对应内模式
考题:
(1)某数据库中有员工关系E、产品关系P、仓库关系W和库存关系I,其中:
员工关系E(employeeID、name和department)中的属性为员工编号、姓名和部门。
产品关系P(productID、name、model、size和color)中的属性为产品编号、产品名称、型号、尺寸和颜色。
仓库关系W(warehouseID、name、address和employeeID)中的属性为仓库编号、仓库名称、地址和员工编号。
库存关系I(warehouseID、productID和quantity)中的属性为仓库编号、产品编号和产品数量。
若要求仓库关系负责人引用员工关系的员工编号,员工关系E的员工编号、仓库关系W的仓库编号和产品关系P的产品编号不能为空且唯一标识一个记录,并且仓库的地址不能为空,则依次要满足的完整性约束是 _____ 。(参照完整性、实体完整性、用户定义完整性)
注:
参照完整性:主要是为了区分主键和外键
实体完整性:主要是为了确保主键不能为空
用户定义完整性:主要是为了让不是主键的字段不为空
主键与外键
主键:主键是能确定一条记录的唯一表示,比如ID
外键:主要是用于与另一张表的关联,能确定另一张表记录的字段,用于保持数据的一致性。
例子:
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键
成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键
数据库语句:
成绩单的主键(学号和课程号的属性组):PRIMARY KEY (Sno, Pno);
成绩单中学号这一外键:FOREIGN KEY (Sno) PEFERENCES S (Sno);
实体之间的联系
实体之间有三种联系:
- 1 : 1
- 1 : n
- m : n
如下图:
考题:
(1)设有职工EMP(职工号、姓名、性别、部门号、职务、进单位时间及电话)、职务JOB(职务及月薪)和部门DEPT(部门号、部门名称、部门手机和负责人)实体集。一个职务可以由多个职工担任,但是一个职工只能担任一个职务并属于一个部门,部门负责人是一个职工。下图所示的a和b处的实体名分别为_____ 、_____ ,图中a、b之间为_____ 联系。(EMP、JOB、* :1)
1 |
|
注:
这里主要是讲数据库的理论知识点,接下来我就要开始花大量的时间学习SQL、mySQL、Oracle、MongoDB(node.js)的语句学习,加油!