数据库原理-第一章-PPT整理

一、四个基本概念
1. 数据(Data)
– 定义:描述事物的符号记录,与其语义不可分割。
– 种类:数字、文字、图形、图像、声音等。
– 示例:学生记录(李明,男,1972,江苏,计算机系,1990)需结合语义解释。

2. 数据库(DB, Database)
– 定义:长期存储在计算机内、有组织、可共享的大量数据集合。
– 特征:按数据模型组织、冗余度小、独立性高、易扩展。

3. 数据库管理系统(DBMS)
– 定义:位于用户与操作系统之间的数据管理软件。
– 功能:数据定义(DDL)、数据操纵(DML)、完整性控制、并发控制、数据库恢复等。

4. 数据库系统(DBS)
– 定义:引入数据库后的计算机系统,由数据库、DBMS、应用系统、DBA和用户构成。
– 核心:DBMS。

二、数据管理技术的发展
1. 人工管理阶段(20世纪50年代前)
– 特点:数据不保存、无共享、完全依赖程序、无结构。
– 应用场景:科学计算,数据量小。

2. 文件系统阶段(50年代末-60年代中)
– 特点:数据长期保存,但共享性差、冗余度大、独立性差。
– 问题:数据不一致、查询困难、维护成本高。

3. 数据库系统阶段(60年代后期)
– 特点:数据整体结构化、共享性高、独立性强、由DBMS统一管理。
– 数据模型:网状模型(第一代)、关系模型(第二代,主流)、面向对象模型(第三代)。

三、数据库系统结构
1. 三级模式结构
外模式(子模式):用户视角的局部数据逻辑结构(如视图)。
模式(逻辑模式):全局数据逻辑结构,描述数据整体框架(如关系表)。
内模式(存储模式):数据的物理存储结构(如索引、存储方式)。

2. 两级映像与数据独立性
外模式/模式映像:保证逻辑独立性(修改模式时不影响外模式)。
模式/内模式映像:保证物理独立性(修改存储结构时不影响模式)。

四、数据库管理系统(DBMS)
1. 主要功能
– 数据定义(DDL)、数据操纵(DML)、事务管理、安全性与完整性控制、并发控制、恢复机制。

2. 组成模块
– 查询处理器、存储管理器、事务管理器、缓冲区管理器、数据字典。

五、数据库管理员(DBA)
职责
1. 数据库设计与维护。
2. 定义完整性约束与安全策略。
3. 监控性能并优化(如重组织、重构造)。
4. 故障恢复与备份。

六、数据库系统特点
1. 数据共享性高:减少冗余,避免不一致性。
2. 结构化存储:整体数据按模型组织(如关系表)。
3. 独立性:物理独立性(存储变化不影响应用)、逻辑独立性(结构变化不影响应用)。
4. 可控冗余:通过设计降低冗余,提升一致性。

七、对比:文件系统 vs 数据库系统
| 特性 | 文件系统| 数据库系统|
|—————-|—————————|—————————–|
| 数据共享 | 共享性差,冗余度大 | 共享性高,冗余度小 |
| 数据独立性 | 依赖程序,独立性差 | 高度独立(两级映像) |
| 数据结构 | 记录内有结构,整体无结构 | 整体结构化(如关系模型) |
| 完整性控制 | 由程序自行控制 | 由DBMS统一管理 |

八、关键示例
数据独立性应用:修改存储结构(如从顺序存储改为B树索引)时,通过模式/内模式映像调整,应用程序无需改动。
三级模式实例
模式:学生表(学号,姓名,系别)。
外模式:教务处视图(学号,姓名)、财务处视图(学号,奖学金)。
内模式:数据按学号聚簇存储,使用B+树索引。

2025-03-21-数据库-笔记整理

SQL分类
·数据定义语言 DDL (Data Definition Language)大幅度
·用于创建、更改或删除数据库对象,如表、视图、索引及其
它对象。
·语句包括:***CREATE、ALTER、DROP***·
数据操纵语言DML(Data Manipulation Language)小幅度
■用于操纵数据库对象。
·语句包括:SELECT、INSERT、UPDATE、DELETE
·数据控制语言DCL (Data Control Language)
·用于定义控制访问对象。
·语句包括:GRANT、REVOKE
数据类型

字符型
·Char(n):固定长度的字符串 **空的自动置空**
·Varchar(n):可变长字符串 **来几个占几个**
·数值型
·整数型
·bigint:8字节、int:4字节、smallint:2字节、tinyint:1字节
·小数型
numeric(p,s):定点数,整数位和小数位共p位,小数位s位, **10,2整数八位**
0<=s<=p<=38
· decimal,用法同numeric
·**货币型**
· money、smallmoney
日期型
·datetime:精确度1/300秒,8字节 ***计算方法:当前时间-(1899-1-1-0:0)***
·Smalldatetime:范围缩小,精确度1秒,4字节

创建表
·设计表的结构:
·字段的名称
·每个字段的数据类型和宽度
·字段是否允许为空
·是否有缺省值
·是否为标识列
·是否为主键、外键

语法1:
CREATE TABLE
([NULLI NOT NULL],
[PRIMARY KEY,]
[FOREIGN KEY REFERENCES <外来关键字所
[CHECK,]);
例1.建立student关系
CREATE TABLE student(
sno char(8) NOT NULL,
sname varchar(2o) NoT NULL,
age numeric(3,0),
sex char(2),
deptno char(6));

建表过程

create table student
(
sno CHAR(8) not null Unique(代表唯一),
sname VARCHAR2(20) not null default('缺省值'),
age NUMBER(3),
sex CHAR(2),
deptno CHAR(6)
)

tables下查看
表上右键
View是查看表结构
Qurrey data查询数据

UNIQUE代表唯一列
DEFAULT('代表缺省值')
列名中最后不要有空格
CREATE TABLE stu_girl AS
SELECT * FROM STUDENT t WHERE t.SEX='02';
t是别名
DROP删除表结构和数据
DELETE只删除数据行

实践课考察代码
create table student
(
Sno CHAR(7) not null ,
Sname VARCHAR2(20) not null ,
Ssex CHAR(2) not null,
Sbirth DATE,
Clno CHAR(5) not null
);
CREATE TABLE Course(
Cno CHAR(3) NOT NULL,
Cname VARCHAR2(20) NOT NULL,
Ccredit SMALLINT,
Cpno CHAR(3)
);
CREATE TABLE Class(
Clno CHAR(5) NOT NULL,
Special VARCHAR2(20) NOT NULL,
Inyear CHAR(4) NOT NULL,
"NUMBER" INTEGER,
Monitor CHAR(7)
);
CREATE TABLE Grade(
Sno CHAR(7) NOT NULL,
Cno CHAR(1) NOT NULL,
Gmark NUMERIC(4,1)
);

ADD ***数据列名*** 数据类型 #添加新的列
DROP ***COLUMN*** 列名 #删除列
ALTER ***COLUMN*** 列名 新的数据类型 #改该列的数据类型,只能加长不能缩短
ADD CONSTRAINT 约束名 具体约束 #添加约束 UNIQUE可以为空不能相同 PRIMARY不能为空不能相同

sql
alter table STUDENT
add constraint stu_pk #添加键
primary key (SNO) #主键,应用于SNO列
/

sql
INSERT #增加
UPDATE #修改
DELETE #删除

sql
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020101', '李勇', '01', to_date('2002-08-09', 'YYYY-MM-DD'), '20311');/*时间需要使用to_date()函数*/
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020102', '刘诗晨', '02', to_date('2003-04-01', 'YYYY-MM-DD'), '20311');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020103', '王一鸣', '01', to_date('2002-12-25', 'YYYY-MM-DD'), '20312');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020104', '张婷婷', '02', to_date('2002-10-01', 'YYYY-MM-DD'), '20312');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020105', '李勇敏', '02', to_date('2003-11-11', 'YYYY-MM-DD'), '21311');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020106', '贾向东', '02', to_date('2003-12-12', 'YYYY-MM-DD'), '21311');
INSERT INTO STUDENT VALUES ('2020107', '陈宝玉', '01', to_date('2004-05-01', 'YYYY-MM-DD'), '21311');/*当插入的数据全部按照顺序时VALUES可以省略*/
INSERT INTO STUDENT VALUES ('2020108', '张逸凡', '01', to_date('2005-01-01', 'YYYY-MM-DD'), '21311');

数据库-大题解题方法

关系理论
1)非平凡的函数依赖:X Y,Y X
2)平凡的函数依赖:X Y,Y X
无特殊说明下,均讨论非平凡的函数依赖。即X可以推出Y,但Y不是X的子集。因为一般某个集合总能推出其子集(这种情况就是平凡的函数依赖),没啥用。
3)完全函数依赖:X Y,并且对于X的任意真子集X,都有X Y。则称Y完全函数依赖于X。记作X Y。
4)部分函数依赖:Y不完全函数依赖于X。记作X Y。例如A C,又有AB C,那么C就是部分函数依赖于AB的,这种情况会造成数据冗余。
2、码
(1)候选码:是一个属性组(或者属性),通过该属性组能推出所有的属性,并且该属性组的任意子集都不能再推出所有属性了。即在满足完全函数依赖的前提下,还得是最小的属性组。求所有候选码的方法:例:集合U={A,B,C,D,E,G}。函数依赖集F={AB C,CD E,E A,A G}
Step 1
找出一定属于候选码的属性,可能属于候选码的属性,以及不属于候选码的属性。方法如下:一定属于候选码的属性:只出现在左边,或者左右都没出现可能属于候选码的属性:左右都出现不属于候选码的属性:只出现在右边
例题分析
只出现在左边的是B和D,没有左右都没出现的属性,所以BD一定是属于候选码的属性。左右都出现的有A,C,E,因此这三个是可能属于候选码的属性,即待定的备选。只出现在右边的有G,因此G是不属于候选码的属性,可以不管了。
Step 2
先对确定的属性求闭包,若不能构成候选码,再将确定的属性和待定的属性进行组合,做闭包运算,直到得到的属性组能够推出全部的属性。闭包运算:若要求某属性组的闭包,首先设有集合X,令X={该属性组}。
X =自身
X =X 中的属性所能推出的
当X 不等于X 时,X = X 中的属性能所推出的依次类推…直到X =U或者X = X,就求得了属性组的闭包(X)。ps.闭包运算还可用于判断X Y是否成立:当 Y (X)时,有X Y。
例题分析
根据step1的分析,一定是候选码的为BD。可能是候选码的有A、C、E。于是先对BD求闭包(这里可求得BD推不出全部的属性),因此再分别对BDA,BDC,BDE进行闭包运算,看其是否能得到全部属性。如若不能,再增加如BDAC,BDAE之类的组合,直到求出候选码为止。以BDA为例:设X={BDA}X =BDA X =BDACG
X =X ,有X =BDACGE
因此(BDA)为U,所以(BDA)是候选码全部进行完闭包运算后,可知集合U在F下的候选码为{(BDA), (BDC), (BDE)}
2)超码:能推出所有属性的属性组的集合,根据概念可知,候选码是极小的超码集,是超码的子集
3)主码:当有多个候选码时(如例题那样),挑出一个作为主码,简称码
4)主属性:包含在任何一个候选码中的属性,如例题中的ABBC、DED都是主属性
5)非主属性:不包含在任何一个候选码中的属性,如例题中的G
6)外码:关系模式R中,若有一个属性或属性组X,它不是R的码,但X是另一个关系模式S中的码,称X是R的外码
7)全码:最极端情况下,整个属性组都是码,称为全码
3、范式
1)1NF:所有属性都是不可分割的数据项如果某个属性,例如学校,还可以继续拆分为高中和大学,就不满足1NF了。NF是关系数据库需要满足的最低要求
2)2NF:在满足1NF的前提下,不包含非主属性对码的部分函数依赖(即每一个非主属性都完全函数依赖于码)例如在关系R中,码是学号和班级,非主属性是姓名,因为通过学号就能直接推出姓名了,不需要班级,此处姓名就部分依赖于码了,不满足2NF
3)3NF:在满足2NF的前提下,不包含非主属性对码的传递函数依赖(即码应该直接决定非主属性,不能间接决定)传递函数依赖:若X Y,Y Z,且Z Y,Y X,有X Z,此时称Z对X有传递函数依赖。例如在关系R中,码是客户姓名,非主属性是订单编号和订单负责人,通过客户姓名可以推出他的订单编号,再通过订单编号能推出订单负责人,这种情
况下客户姓名和订单负责人是间接决定的,存在传递函数依赖,不满足3NF
4)BCNF:消除任何属性对候选码的传递依赖,即每一个决定因素都包含码,表现为在函数依赖集当中,左边的都包含候选码(整个属性组!)
5)4NF(应该不考这个):不允许有非平凡且非函数依赖的多值依赖多值依赖(个人理解,仅供参考,我觉得不会细考):X,Y,Z属于集合U,且Z=U-X-Y。当给定一组(x,z)值的时候,可以确定一组Y的值,但这组Y的值仅仅取决于x,此时有X Y。其实这里就是存在了一对多的关系,即一个x和一组z有关,但x并不能唯一确定一个z,通过x和z能找到一组y,但你只通过x也能确定y。平凡的多值依赖:Z是空集非平凡的多值依赖:Z不是空集判断方法与分解方法:R为{A,B,C,D}2NF(没有部分函数依赖):若码是AB,F中若为(A C,AB D},对于C,只需要A就能推出,那么C部分函数依赖于码AB,这种情况就不是2NF。若要分解为2NF,只需将不符合要求的拿出来,即分为R {A,B,D}和R {A,C}3NF(没有部分函数依赖与传递函数依赖):若码是AB,F若为{AB C,C D},这里不存在部分函数依赖。但是对于D,需要AB推出C后才能间接推出D,那么D传递函数依赖于AB,不满足3NF。若要分解为3N F,同样将不符合要求的拿出来,即分为R {A,B,C}和R {C,D}。BCNF(没有部分函数依赖,同时每一个决定因素都包含码):若R是(A,B,C),F是{AC B,AB C,B C},候选码则是AC和AB。这里不存在部分函数依赖,但对于B C来说,决定因素B不包含码,因此它不是BCNF。、最小函数依赖集4求最小函数依赖集的方法step 1: 拆分右侧例如将A BC拆为A B和A Cstep 2: 去除自身求闭包若有有AB C,BC E,AE G,去除AB自身能推出的C,基于剩余的依赖关系求AB的闭包,若AB通过剩余的关系也能求出C,那么删除AB C这个依赖关系step 3: 左侧最小化例如目前保留的关系有ABC D,观察左边的ABC当中,A是否能由BC推出,B是否能由AC推出,C是否能由AB推出。假设C能被AB推出,那么左侧去掉C,更新为AB D。例:设F={C A,CG BD,CE A,ACD B},求最小函数依赖集。
step 1:将CG BD拆分为CG B和CG D。
step 2:C) C,因此保留C A。(CG) CGADB,因此去掉CG B。(CG) CGA, 因此保留CG D。(CE) CEA,因此去掉CE A。(ACD) ACD,因此保留ACD B。
step 3:C A已经是最小。CG D已经是最小。ACD当中,C可以推出A,去掉A,更新为CD B。因此,本题的最小函数依赖集为{C A,CG D,CD B}。
5、模式分解
1)模式分解的准则:无损连接、保持函数依赖
2)无损连接:分解后再次自然连接,与分解前相同
判断无损连接的方法
step 1: 画表格。列表示所有的属性,有多少属性就画多少个属性列。行表示分解后的关系,有几个关系就画几个关系行。
step 2: 根据每一行关系进行判断。找到关系中的每个属性对应第几列,并在相应的位置上标为a ,下标j是表格里的列数。其余关系中不存在的属性则标为b ,ij是表格对应的行数和列数。
step 3: 依次对函数依赖集里的各个依赖关系进行考察。例如有XY Z。在属性列中找到X和Y,观察X和Y的行列上是否有相同的标记(b的下标要相同)。若有,则查看它们对应在属性列Z上的各个标记。其中若有a ,则将属性列上的这些标记全部改为a 。若没有a ,则找到i值最小的b ,将这些标记全部改为b 。
step 4: 反复执行以上操作,直到某一行全部变为a为止,则表明具有无损连接性。否则不具有无损连接性。
例:F={A C,C D,B C,DE C,CE A}。分解为R(AD),R(AB),R(BC),
R(CDE),R(AE)。
step 1:画表格
A B C D E
step 3:更新表格
A B C D E

数据库-整理

架构:
数据 !
记录 !
表 !
数据库(可共享的数据集合) !
数据库管理系统(软件):管理数据库 !
数据库系统:基于数据库的应用系统 !
数据独立性
!高度的数据物理独立性 !:存储结构改变应用程序不改变(桌子还是桌子)
!一定的数据逻辑独立性 !:逻辑结构改变时应用程序不改变(不同人看)
(1)数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
(2)数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
(3)数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
三个阶段
手工阶段
文件系统阶段
数据库阶段
distinct 去重
!DML数据操纵语言! :增加、检索、插入、修改、删除
!DDL数据定义语言!:创建表、创建视图、创建结构体
!DCL数据控制语言!
三级模式:外模式 模式 内模式、两级映像:物理独立性、逻辑独立性
三级模式
型(数据属性)和值(数据值)
模式(Schema)
模式,又称概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式定义了数据的逻辑结构,包括数据项的名字、类型、取值范围等,还定义了与数据有关的安全性、完整性要求,以及数据之间的联系1。
# 示例:定义一个简单的数据库模式
CREATE TABLE Users (
UserID INT PRIMARY KEY,
UserName VARCHAR(100),
UserEmail VARCHAR(100)
);

1.1 用户级–> 外模式(反映了数据库系统的用户观)
外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行操作。
1.2 概念级–> 概念模式(反映了数据库系统的整体观)
概念模式又称模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的。
1.3 物理级 –> 内模式(反映了数据库系统的存储观)
内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义的。
总结:
总之,数据按外模式的描述提供给用户;按内模式的描述存储在磁盘上;而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级的牵制。
数据库的两级映射
数据库系统在三级模式之间提供了两级映像:模式/内模式的映像、外模式/模式的映像。
• 模式/内模式的映像:实现概念模式到内模式之间的相互转换。
• 外模式/模式的映像:实现外模式到概念模式之间的相互转换。
数据的独立性是指数据与程序独立,将数据的定义从程序中分离出来,由DBMS(数据库管理系统)负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。
数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。
什么是数据的物理独立性?
答:数据的物理独立性是指当数据库的内模式发生改变时,数据的的逻辑结构不变。由于应用程序处理的只是数据的逻辑结构,这样物理独立性可以保证,当数据的物理结构改变了,应用程序不用改变。但是,为了保证应用程序能够正确执行,需要修改概念模式/内模式之间的映像。
什么是数据的逻辑独立性?
答:数据的逻辑独立性是指用户的应用程序与数据库结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式/概念模式之间的映像。
一句话总结一下:通俗来讲就是如果改变了某个模式,只需要修改上一层的映像。即改变内模式,只需要修改模式/内模式映像(物理独立性),改变概念模式(逻辑结构),只需要修改外模式/模式映像(逻辑独立性)
模式:不同的查询方法
实例:查出来的内容
Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。
Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。
DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。mysql
DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。学生管理系统
数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础其组成元素有数据结构、数据操作和完整性约束。
概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。
物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
实体和属性:客观存在并可相互区别的事物称为实体。实体所具有的某一特性称为属性。
E-R图:即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设计的主要工具
11.关系模式:从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规范化的二维表。
12.型/值:型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。
13.数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。
14.数据库的三级系统结构:外模式、模式和内模式。
15.数据库内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
16.数据库外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
17.数据库的二级映像:外模式/模式映像、模式/内模式映像。
重点知识点
1.数据库系统由数据库、数据库管理系统、应用系统和数据库管理员构成。
2.数据模型的组成要素是:数据结构、数据操作、完整性约束条件。
3.实体型之间的联系分为一对一、一对多和多对多三种类型。
4.常见的数据模型包括:关系、层次、网状、面向对象、对象关系映射等几种。
5.关系模型的完整性约束包括:实体完整性、参照完整性和用户定义完整性。
6.阐述数据库三级模式、二级映象的含义及作用。数据库三级模式反映的是数据的三个抽象层次: 模式是对数据库中全体数据的逻辑结构和特征的描述。内模式又称为存储模式,是对数据库物理结构和存储方式的描述。外模式又称为子模式或用户模式,是对特定数据库用户相关的局部数据的逻辑结构和特征的描述。数据库三级模式通过二级映象在 DBMS 内部实现这三个抽象层次的联系和转换。外模式面向应用程序, 通过外模式/模式映象与逻辑模式建立联系, 实现数据的逻辑独立性。 模式/内模式映象建立模式与内模式之间的一对一映射, 实现数据的物理独立性。
将相关的人员的ID记到一起叫关系
一个数据库只有一个模式
外模式是对模式的不同看法
外模式通常是模式的子集
一个数据库可以有多个外模式
一个应用程序只能有一个外模式
内模式是数据物理结构和存储方式的描述
一个数据库只有一个内模式
S#编号
椭圆属性
菱形联系
方形实体
线
20250314
E-R图
联系:学生通过学号选修课程,联系两个实体 唯一编号对唯一编号
实体码:标识实体的唯一标识符
域:取值范围,实体范围
组合多值
属性中不能出现组合属性和多值属性,必须转换为原子属性和单值属性
联系
一对一
一对多
多对多
数据模型(严格定义的一组概念模型):
数据结构(系统静态特性)
数据操作(系统动态特性):包括查询增删改
数据完整性约束(完整性规则集合):保证数据有效完整一致,有保障
元组:一行或者一个学生
属性:一列
表名:关系表的名称
域:每个属性的取值范围
关系模式可表示为:
关系模式名(属性名1,属性名2,……属性名n)
学生(学号,姓名……) 学号是主属性,一定要标主属性
关系又称表
关系数据库是若干表的集合
关系模式决定其对应关系的内容
每一个关系都必须命名
且同一关系数据模型中关系名互不相同
关系模式:表结构
关系:数据
元组:关系中的一行或者记录
码:极小的属性组
**关系是笛卡尔积中有意义的子集**
关系也可以表示为二维表
不同的列可出自于同一元组
任两个元组不能完全相同
集合内不能有相同的两个元素



表中的每一项都是不可分的基本数据项
·码(又称关键字,key)
■候选码
·能唯一确定一个元组的某一极小属性组
·主码(PrimaryKey)
·为关系组织物理文件时通常选用一个候选码作为插入、删除
修改、检索元组的操作变量,被选用的候选码成为主码。
·主码一经选定通常不变,一个关系中只有一个主码。
·外部码(ForeignKey)
·如果关系R的某一属性组不是该关系本身的候选码,而是另一个
关系的候选码,则称该属性组是R的外部码。
【例】有 学生关系S(Sno,Sname,Sex,Dno)
和专业关系DEPT(Dno,Dname)

关系模式图

学生(学号,姓名,年龄)
课程(课程号,课程名称)
选修(学号,课程号,成绩)
m:n多对多

1:n一对多
班级(班级号,班级名称,学生号1,学生号2,……学生号n)
学生(学生号,姓名,年龄,班级编号)

1:1一对一
管理(教师编号,教师姓名,班级编号,班级名称)

教师(教师编号,教师名称)
课程(课程编号,课程名称)
教科书(教科书编号,教科书名称)
讲授(教师编号,课程编号,教科书编号
三元关系

教师(教师编号,教师名称,管理者教师编号)
自联系一对多

组织架构(机构编号,机构名称,父机构编号,机构类型)

SQL分类
·数据定义语言 DDL (Data Definition Language)
·用于创建、更改或删除数据库对象,如表、视图、索引及其
它对象。
·语句包括:CREATE、ALTER、DROP·
数据操纵语言DML(Data Manipulation Language)
■用于操纵数据库对象。
·语句包括:SELECT、INSERT、UPDATE、DELETE
·数据控制语言DCL (Data Control Language)
·用于定义控制访问对象。
·语句包括:GRANT、REVOKE


校内数据库:
服务名:orcl
ip:10.130.4.229
端口:1521

校外数据库:
服务名:JEM11GR2
ip:120.55.192.11
端口:21521

【腾讯文档】Oracle用户创建脚本
https://docs.qq.com/doc/DUmpzcXZvQXRQQWxy

样例:create user zhangsan identified by zs123; grant connect,resource to zhangsan;
/*zhangsan 代表用户名,zs123代表密码*/

各用户名和密码
/*用户创建语句*/
样例:create user zhangsan identified by zs123; grant connect,resource to zhangsan;
/*zhangsan 代表用户名,zs123代表密码*/
create user zhoujiaying identified by zjy1013123;
grant connect,resource to zhoujiaying;
create user shitianjing identified by stj060529;
grant connect,resource to shitianjing;
create user zhangkaixi identified by zhangqq123;
grant connect,resource to zhangkaixi;
create user yangyikai identified by yyk12345;
grant connect,resource to yangyikai;
create user nermay identified by lzk123;
grant connect,resource to nermay;
create user sunjialu identified by sjl051108;
grant connect,resource to sunjialu;
create user huangji identified by 060425;
grant connect,resource to huangji;
create user chenzhizhang identified by czz123;
grant connect,resource to chenzhizhang;
create user luobowen identified by lbw123;
grant connect,resource to luobowen;
create user mrhuo identified by z36970508;
grant connect,resource to mrhuo;
create user wangyile identified by 0205;
grant connect,resource to wangyile;
create user zhjx identified by zhjx;
grant connect,resource to zhjx;
create user zhangzihan identified by zzh20050527;
grant connect,resource to zhangzihan;
create user zhuyijie identified by zhuyijie0215;
grant connect,resource to zhuyijie;
create user qiyuhao identified by qyh123;
grant connect,resource to qiyuhao;
create user zhengzhirui identified by zhengzhirui0718;
grant connect,resource to zhengzhirui;
create user wangruobing identified by 249050206;
grant connect,resource to wangruobing;
create user dumingkun identified by dmk123;
grant connect,resource to dumingkun;
create user yitao identified by zytdsg123;
grant connect,resource to yitao;
create user yuxiao identified by yx123;
grant connect,resource to yuxiao;
create user chennuo identified by cn93030917;
grant connect,resource to chennuo;
create user xiongtaokai identified by 249050931;
grant connect,resource to xiongtaokai;
create user chenguowei identified by zjzs123456;
grant connect,resource to chenguowei;
create user chenxingxing identified by cxx123;
grant connect,resource to chenxingxing;
create user xwm identified by asdxiang6666;
grant connect,resource to xwm;
create user hurkin identified by can123456;
grant connect,resource to hurkin;
create user lutangyuan identified by lu123;
grant connect,resource to lutangyuan;
create user caijiayi identified by cjy123;
grant connect,resource to caijiayi;
create user lixuening identified by lxn021221;
grant connect,resource to lixuening;
create user zhangruihan identified by zrh0408;
grant connect,resource to zhangruihan;
create user mlb identified by mlb87863102;
grant connect,resource to mlb;