前言:
一、基本概念
(一)数据
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加
工的原始素材。
(二)数据库(DB)和数据库管理员(DBA)
(三)数据库系统
(1) 数据库管理系统(DBMS)是用于管理数据库的,一般具有存储、存取、安全保障、备份等基础功 能。
( 2) 数据库系统(DBS)由数据库(DB)、数据库管理系统 DBMS(及其应用开发工具)、应用程序、数 据库管理员以及用户组成。DBMS 是系统软件。
( 3)发展阶段: 人工处理->文件系统->数据库系统
( 4)数据库系统的特点:
①、结构化:整体和内部都是结构化,数据不仅对某个应用,而是全面组织的。
②、数据的共享性高,冗余度低,易扩充:数据是面向整体的,不仅用于某个人,某个应用或某服务等,可 以供多个应用来使用。
③、数据独立性高:物理独立性和逻辑独立性。 物理独立性指的是存储,与逻辑结构分开,由 DBMS 来管 理,物理存储改变化,应用程序不需要改变。逻辑独立性是指用户不用怕逻辑结构的变化对应用程序的 影响。
④、数据由 DBMS 统一管理和控制:多个并发、多用户访问数据库也可同时访问(存取)同一个数据。
( 5)常用数据库软件:
自由软件(开源软件):MySQL、PostgreSQL、MongoDB(非关系型)、MongoDB(非关系型)、 Hbase(非关系型)、Redis(非关系型)等
非自由软件:Oracle、Microsoft SQL Server、DB2、Access、Visual FoxPro 等 。
二、数据库系统的特点
三、数据库系统的组成
四、关系数据模型
(1) 关系数据库系统是支持关系模型的数据库系统。 目前大多数据库系统都是基于关系数据模型( SQL 技术类数据库:MySQL、Access、SQL Server 等),但是随着大数据的发展,也开始利用非关系数据模型 来处理数据,比如 NoSQL 技术( Redis、Hbase、MongodDB 等)。
( 2)组成部分: 关系数据结构、关系操作集合和关系完整性约束
①、 关系数据结构:
关系(联系):各实体之间的关系(联系),即二维表结构表示
属性:二维表中每一列在关系中称为属性
元组:二维表的第一行在关系中称为元组。
域:属性的取值 范围称为域。
候选关键字:能用来唯一区分、确定不同的元组的属性或属性的组合,称为该关系的候选关键字。
候选关键字可以简称为关键字。
主键:从候选关键字中选定一个作为关键字,称这为该关系的主关键字。主键是唯一标识元组的属
性或属性组。
外键:如果一个 A 表的主关键字是另一个 B 表中的字段,则该字段为 B 表的外键,A 表是主表,B 表 称为从表。
②、 关系操作集合:选择( select)、投影(project)、连接(
join)、等查询(Query)操作和增加 ( Insert)、删除(Delete)、修改(Update)操作两大部分。
③、 关系完整性约束:
实体完整性 :是否为空值,主码等
参照完整性 :主要使用外键来约束, 参照的完整性要求关系中不允许引用不存在的实体。
用户定义的完整性 :取值范围、属性值函数关系 等
( 3) 关系模型的特点
①、每个属性对应一个值域,不同属性的值域可以相同
②、不允许出现相同的元组或者属性
③、元组的顺序可以交换;属性的顺序可以交换,交换后不产生新的关系
④、关系中元组的个数可以为 0 或空表。
⑤、关系中的每一个属性都是原子数据,不可再分的数据。
⑥、主键的属性不能为空,不能为重值。
(4)关系和关系模式:
①、 关系模式是二维表的静态结构
②、 关系是动态的二维表的内容,实体间的联系:1 对 1(1:1),1 对多(1:m 或多对一 m:1),多对多(m:n)
③、 关系模式的形式:
关系模式名(属性名 1,属性名 2,…,属性名 n)
R(A1,A2,…,An)
( 5) 关系数据库的完整性
①、实体的完整性:主键不可能重复、不能为空值 (NULL)
②、引用完整性约束:外键可以为空,外键取值受到约束。
5、关系运算
(1)传统集合运算:
并:并操作只会增加或保持元组的个数,可以选择显示的属性的个数
差:差操作只会减少或保持元组的个数
交:交操作只会减少元组个数,且属性个数也不变
迪卡尔积:迪卡尔积操作元组个数和属性都会增加
(2)选择运算(一元操作):对应 SELECT 语言中 WHERE 后面条件
( 3)投影运算(一元操作):对应 SELECT 语言中要查询的字段(或属性)
( 4)连接运算(二元操作):对应 SELECT 语句中 JOIN 等
6、概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
7、逻辑模型:是按计算机系统的观点对数据建模,用于 DBMS 实现。
8、物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
五、SQL语言
(1) 结构化查询语言(Structured Query Language)简称 SQL , 结构化查询语言为高级的非过程化编程语 言,允许用户在高层数据结构上工作,是关系数据库的标准语言。
( 2)SQL 由四部分组成:
①、 数据定义语言 ,即 SQL DDL,用于定义 SQL 模式、基本表、视图、索引等结构。主要命令语句: CREATE(创建)、ALTER(修改)、DROP(删除)。
②、 数据操纵语言 ,即 SQL DML。主要命令语言:INSERT(插入)、UPDATE(更新)、DELETE(删除)
③、 数据查询语言 ,即 SQL DQL。主要命令语言:SELECT(查询),有些教材中将 SELECT 归入数据操纵 语言中。
④、 数据控制语言 ,即 SQL DCL,这一部分包括对基本表和视图的授权、完整性规则的描述、事务控制 等内容。
六、数据库设计阶段:
(1)需求分析
(2) 概念结构设计(E-R 模型) :主要采用 E-R 模型进行设计,包括画 E-R 图。
数据库系统的全局概念结构模式独立于具体的计算机和 DBMS 。
①、 E-R 图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述, ,用来描述,与具体的数据库管理系统及软硬件环境无关.
②、用“ 矩形框 ”表示实体型,矩形框内写明 实体名称 ;
③、用“ 椭圆图框 ”或圆角矩形表示 实体的属性 ,并用“实心线段”将其与相应关系的“实体型”连接起来;
④、用” 菱形框 “表示 实体型之间的联系 成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型 连接起来,同时在”实心线段“旁标上联系的类型(
1:1,1:n 或 m:n )
(3) 逻辑结构设计 将E-R图中实体之间联系或实体可以转换成为关系。
(4) 物理结构设计
( 5)实施
( 6)运行与维护