医药数据库管理与应用知识讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
医药数据库系统原理与应用
一.绪论
1.1.1数据库管理系统的概念:是一种操纵和管理数据的大型软件,用于建立、使用后人维护数据库,简称DBMS。
功能:数据定义、数据组织、数据存储、数据操纵和运行维护
1.2数据模型的分类:概念模型、逻辑模型和物理模型
数据模型的组成要素
数据模型精确的描述了系统的静态特征、动态特征和完整性约束条件,由数据结构、数据操作和完整性约束三部分组成。
E-R模型:两个实体之间的联系可分为三种一对一、一对多、多对多。(分别会画)
1:1联系1:n联系m:n联系
1.3三级模式结构
数据库系统的三级模式结构包括外模式、内模式、模式
二级映像
(1)外模式|模式映像:模式描述的是数据库的全局逻辑结构,外模式描述的是局部数据的逻辑结构。一个模式对应多个外模式,每个外模式都有一个外模式|模式映像。外模式|模式映像一般放在外模式中描述。
(2)模式|内模式映像:数据库中只有一个模式,也只有一个内模式,因此模式|内模式映像是唯一的,它表达了数据全局逻辑结构与存储结构之间的对应关系。,如逻辑记录和字段在内部是如何储存的。模式|内模式映像一般是放在模式在模式中描述的。
数据的独立性
(1)数据的地逻辑独立性
(2)数据的物理独立性
二、关系模型与关系代数
2.3实体完整性的规则
(1) 实体完整性的规则针对基本关系。一个基本关系表通常对应一个实体集,例如医生关系对应医生集合;
(2)现实世界中的实体是可以区分的,它们具有一种唯一性标识。例如:医生的ID,病人的ID等。
(3)在关系模型中,主关键字作为唯一的标识,且不能为空。
参照完整性
现实世界中的实体与实体之间往往存在某种关系,当用关系来表示实体与实体之间的联系时,关系之间的相互引用是必然的。
用户自定义的完整性
任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,关系数据库系统根据现实世界中的环境不同,往往还需要另外的约束条件。用户自定义的完整性
就是针对某一具体要求来定义的约束条件,它反应某一具体应用所涉及的数据必须满足的语义要求。
传统的集合运算是二目运算,包括交、并、差、广义笛卡尔积四种运算。
三、SQL语言
SQL的特点
1.综合统一
2.高度非过程化
3.使用方式灵活
4.语言简洁,易学易用
完整性约束条件
1.NULL|NOT NULL 约束:表面相应列是否允许空值
2.PRIMARY KEY约束(主键约束):用于定义基本表的主键,其唯一标示作用。主键可以是某一列,也可以是多列的组合。一个基本表只能有一个主键,对于指定的PRIMARY KEY 地一个列或多个列的组合,其中任何一个列都必须定义为NOT NULL。
3.CHECK约束:用来检查字段值所允许的范围
4.FOREING KEY (外键约束):用于定义基本标的外键,建立两张表之间的联系。
用SQL语言定义如下
医生表(Doctor)
CREATE TABLE Doctor(
dID CHAR(6)PRIMARY KEY,
dName CHAR(10),
Titie CHAR(10),
Department CHAR(10),
Assistant CHAR(6)
);
病人表(Patient)
CREATE TABLE Patient(
pID CHAR(6)PRIMARY KEY,
pName CHAR(10),
Sex CHAR(2),
Job CHAR(30),
Tel CHAR(6),
Birth Datetime,
CHECK (Sex in('男','女'))
);
就诊总费用表(CureFee)
CREATE TABLE CureFee(
pID CHAR(6)NOT NULL,
dID CHAR(6)NOT NULL,
Fee Int check(Fee>=0),
PRIMARY KEY(pID,dID),
FOREIGN KEY(pID)REFERENCES Patient(pID),
FOREIGN KEY(dID)REFERENCES Doctor(dID)
);
例3.5 在医生表Doctor中增加“性别”“简介”列,其数据类型均为字符型。ALTER TABLE Doctor
ADD sex CHAR(2)CHECK(sex in('男','女')),introduction CHAR(30);
例3.12 为Patient表的Sex列建立默认约束,默认为“男”
ALTER TABLE Patient
ADD CONSTRAINT DF_Patient_Sex DEFAULT '男'FOR Sex;
1.索引的分类(重点在英文)
在创建索引前,必须确定要使用的列和要创建的索引类型。
(1)唯一索引( UNIQUE):每一个索引值只对应唯一的数据记录。系统在创建该素引时3.4单表
检查是否有重复的键值,并在每次便用 INSERT或 UPDATE语句添加数据时进行检查。如要使用此选项,则则应确定索引所包含的列均不允许NUIL值,否则在使用时会经常出错。(2)聚集索引( CLUSTERED):也称聚簇索引。创建聚簇索引时,需要对已有表数据重新进行排序(若表中已有数据),即删除原始的表数据后再将排序结果按物理序插回,故聚索引建立完毕后,建立聚簇索引的列中的数据已经全部按序排列,排列的结果存储在表中。个表中只能包含一个聚簇索引,但该索引可以包含多个列。
(3)非聚集索引( NONCLUSTERED):也称非聚簇索引。索引与数据存放在不同的物理区城,建立非聚集索引时数据本身不进行排序,即排列的结果不存储在表中。一个表中可以建立
多个非聚簇索引。
(4)复合索引:将两个或多个字段组合起来建立的索引,单独的字段允许有重复的值
需要注意的是,建立索引的目的是加快对表中记录的查找或排序。同时,为表设置索引是要付出代价价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间
(因为索引也要随之变动)。用户可以在最常查询的列上建立聚集索引,以提高查询效率。但
对于经常更新的列不宜建立聚集索引。
例3.28 查询姓刘的医生的基本信息
SELECT*
FROM Doctor
WHERE dNAME LIKE'刘%';
例3.33 查询没有提供电话的病人的姓名、性别、职业。
SELECT pNAME,Sex,Job