第一章 数据库概述
一、四个基本概念
1、数据(Data):数据是描述事物的符号记录。
种类:文本、图形、图像、音频、视频等
特点:数据与语义不可分割,数据是有结构的
2、数据库(DB:Database):长期储存在计算机内、有组织、可共享的数据集合
3、数据库管理系统(DBMS:Database Management System):对数据库中的数据进行存储和管理的软件系统。
例如:Dbase、Oracle、mysql、sql server
功能:
- 数据定义功能——提供数据库定义语言(DDL)
- 数据组织、存储和管理
- 数据操纵功能——提供数据操纵语言(DML)进行基本操作
- 数据事务管理和运行管理
4、数据库系统(DBS:Database Application System)
由数据库、数据库管理系统、应用系统、数据库软硬件支撑环境、数据库管理员和用户构成
二、数据管理技术的发展过程
人工管理阶段:没有磁盘、操作系统,只能计算、无法存储结果
文件系统管理阶段:出现操作系统(文件系统),可以存储计算结果
数据库管理阶段:大容量、大规模、数据共享
三、数据独立性
逻辑独立性:当表达现实世界的信息内容发生变化时,不影响应用程序特性(增加删除信息)
物理独立性:当数据的存储位置或存储结构发生变化时,不影响应用程序的特性(存放位置)
四、数据库系统的组成
狭义:数据库、数据库管理系统、数据库应用系统
广义:数据库、数据库管理系统(核心)、数据库应用系统、人员(数据库管理员、系统分析员和数据库设计员、程序员)、软硬件、用户
第二章 数据库系统结构(内部结构)
一、信息与数据
1、信息:从数据中获得的有意义的内容(人脑对现实世界事物的存在方式、运动状态以及事物之间联系的抽象反应)。
2、数据:描述事物的符号记录。
数据语法:数据的格式
数据语义:数据含义。数据赋予不同语义有不同解释。
表现形式:数字、文字、图像、声音等。
3、数据静态特征:
l 数据基本结构
l 数据的联系
l 数据取值范围的约束
动态特征:对数据的操作(查询、插入删除更新)以及操作规则
对数据的静态特征和动态特征的描述称为数据模型三要素。
3、数据与信息的区别和联系:
数据是信息的符号表示;
信息是对数据的语义解释。
信息=数据+语义 数据+数据处理=信息
二、概念层数据模型(概念模型)
现实世界:由客观存在的事务及其联系组成。如:学生选修课程。
信息世界(概念世界):对客观事物及联系的一种抽象描述。如:学生信息、教师信息
计算机世界(数据世界):对信息世界中信息的数据化。
1、从数据的语义视角抽取模型,按照用户的观点对数据和信息建模。是现实世界到信息世界的抽象。
与具体的DBMS无关,与具体的实现方式无关
常用模型:实体–联系模型、语义对象模型
2、实体–联系模型
(1)实体:客观存在并可以相互区别的“事物”。可以是具体的人事物,又可以是抽象的事件。
用矩形框表示,框内写明实体名。
(2)属性:实体所具有的特征或特质。用椭圆形表示,用无向边与其对应实体连接
(3)联系:数据之间的关联集合
用菱形表示,框内写明联系名,用无向边与有关实体连接,并在边旁标上联系的类型(1..1、1…n或m…n)。
联系种类:
一对一(1:1) 一对多(1:n) 多对多(m:n)
ER 模型转换为关系模式的原则:
一对一:遇到一对一关系的话,在两个实体任选一个添加另一个实体的主键即可。
一对多:遇到一对多关系的话,在多端添加另一端的主键。
多对多:遇到多对多关系的话,我们需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。
三、组织层数据模型(组织模型)
从数据的组织层次来描述数据
根据数据组织方式分,分为:非关系模型(层次模型、网状模型)、关系模型、面向对象模型、对象–关系模型
关系模型概述:
(一)关系数据结构
关系:满足以下性质的二维表
l 关系表中的每一列都是不可再分的基本属性
l 表中行、列次序不重要
关系数据模型:用关系(二位表格数据)表示实体和实体关系之间联系的模型。
元组:表中的一行为一个元组,相当于一个记录值
属性:表中一列是一个属性,属性名称即属性名
分量:元组中的每一个属性值称为元组的一个分量。n元关系的每个元组有n个分量。
域:属性的取值范围。如性别的域为:(‘男’,‘女’)
候选码:能够唯一标识关系中的一个元组的一个属性或最小属性组。
主码:指定候选码中的一个作为主码
主属性:包含在任一候选码中的属性
非主属性:不包含在任意候选码中的属性
关系模式:二维表的结构(表框架或表头结构)。即:关系名R(属性A1,属性A2,…)例如:学生关系模式:学生(学号、姓名、性别、年龄)
关系模式与关系:
关系模式是型,对关系的描述,静态的、稳定的
关系是值,关系模式在某一时刻的状态或内容,是动态的、随时间变化的
(二)关系操作
1、符号
2、传统的关系运算:
(1)并 (2)交
(3)差 (4)笛卡尔积
3、专门的关系运算
(1)选择(从行的角度) (2)投影(从列的角度)
(3)连接
(4)除(行和列)
(三)数据完整性约束
数据完整性是指数据库中存储的数据是有意义的或正确的。
(1)实体完整性:每个元组都是可识别的和唯一的(主键非空)
表中不允许存在:无主码值的记录、主码值相同的记录
(2)参照完整性:描述多个实体之间的联系,一般用外码实现。(外码要么为空,要么为被参照表的主码)
外码:取作子表(本表)属性之一的主表(外表、父表)主码。
关系R的外码或者值为空;或者等于被引用表(被参照表)中某个元组的主码值
外码可以有重复值
(3)用户定义的完整性(域完整性、语义完整性):用户定义应遵循的约束条件
四、数据库系统的结构
(一)内部体系结构
从DBMS来看,采用三级模式结构
1、外模式(External Schema)
又称为子模式或用户模式,数据库用户能看到并允许使用的局部数据的逻辑结构和特征的描述,局部逻辑结构。
外模式是模式的的子集,可有多个。
介于概念模式与应用系统之间,模式与外模式:一对多。外模式与应用:一对多(应用程序基于外模式)。
2、模式(Schema)
又称为概念模式或逻辑模式。是对数据库中全体数据的逻辑结构和特征的描述,是数据库的整体逻辑。
作用:
对下层,不涉及数据的物理存储细节和硬件环境
对上层,与具体的应用程序、程序开发工具和程序设计语言无关
一个数据库只有一个模式
3、内模式(Internal Schema)
又称为存储模式或物理模式,处于最内层。是对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
小结:一个数据库系统,实际存在的只是物理级数据库,即内模式是数据访问的基础。
用户根据外模式进行的操作,通过外模式到模式的映射与概念级数据库联系起来,又通过模式到内模式的映射与物理界数据库联系起来。
(二)二级映像
保证了数据的逻辑独立性和物理独立性。
外模式/模式映像:保证了数据与程序间的逻辑独立性。即当模式改变时,通过修改此映像,使外模式保持不变,应用程序依赖于外模式,从而应用程序不必修改。(如增加或删除了某些字段)
模式/内模式映像:保证了数据的物理独立性。即当数据库的存储结构改变了,通过修改此映像使模式不变,应用程序不受影响。(如从链表存储改为了哈希表存储)
(二)外部体系结构
从最终用户角度来看:
单用户结构数据库系统:应用程序、DBMS和数据库装在一台计算机,一个用户独占使用。
主从式结构:大型主机带多个终端的多用户结构。
分布式结构:数据库分布存储在不同计算机,逻辑上整体。
客户/服务器结构:服务器和客户机分开。
浏览器/服务器结构:客户通过浏览器
第三章 SQL语言基础
一、基本概念
SQL:结构化查询语言,是关系数据库的标准语言。
SQL功能 |
命令动词 |
数据定义语言(DDL) |
Create、drop、alter |
数据库查询语言(DQL) |
select |
数据库操纵语言(DML) |
Insert、update、delete |
数据库控制语言(DCL) |
Grant、revoke |
基本表:独立存在的表,SQL中一个关系对应一个基本表。一个(或多个)基本表对应一个存储文件,一个表可以带若干索引。
视图:从一个或多个基本表中导出的虚表,数据库中只存放视图的定义。用户可以在视图上在定义视图。
存储文件:逻辑上组成了内模式,物理上是任意的,对用户透明。
索引:为快速访问数据,在包含数据的表由增加的一种组织。分为聚簇索引和非聚簇索引。
聚簇索引:索引项顺序与基本表中记录的物理顺序一致的索引结构。
二、SQL的数据类型
1、数值型 2、日期时间型
3、字符串型
三、数据定义功能
1、定义基本表
列级完整性约束:
Not null:列取值非空——name char(10) not null
Default:给定列的默认值
Unique:限制列取值不重复
Check:限制列的取值范围
Primary key:主码——sno char(7) primary key / primary key(sno,cno)
Foreign key:外码——foreign key(sno) references 学生表(sno)
Not null和default只能是列级完整性约束,其他约束可以在表级完整性约束处定义。
例:创建学生–课程成绩表
2、删除表
Drop table 表名
3、修改表结构
四、数据完整性
1、完整性约束条件的作用对象有表、元组和列。
列级约束:对列的数据类型、取值范围、格式、精度等约束。
元组约束:元组中各个字段之间的相互约束。例如:开始日期小于结束日期。
关系元组:若干元组之间、关系之间的联系的约束。例如:学号不重复。
1、实现约束
(1)PRIMARY KEY约束
每个表有且只有一个,保证实体完整性
Alter table 表名 add [constraint 约束名] primary key(列名)
Alter table 雇员表 add constraint PK_EMP primary key(雇员编号)
(2)UNIQUE约束
保证列不输入重复值,用于唯一性质的列上,例如身份证号等。
Alter table 雇员表 add constraint UK_SID unique(电话号码)
(3)FOREIGN KEY约束
外码,加强联系
Alter table 雇员表 add constraint FK_job_id foreign key(工作编号) references 工作表(工作编号)
(4)DEFAULT约束
为列提供默认值,一个default只能约束一列
Alter table 雇员表 add constraint DF_SALARY default 1000 for 工资
(5)CHECK约束
限制列的取值
Alter table 雇员表add constraint CHK_Salary check(工资>=500)
五、数据库定义与删除
原文地址:http://www.cnblogs.com/znjy/p/16789598.html