数据库
乐学团队字样一队交一份
个人字样每人交一份
总附加最多十分
实验一数据库设计
第五章结束之后一周
4月12号ddl(几率小)
每个团队交一份设计文档
包括
实验八需要解决数据库的连接问题
需求分析
概念设计
逻辑设计
物理设计
几十页的word
多于十四个表
文档要求来自王珊第六版的第七章
3月29号实验二搭建实验环境(两周交一次作业)
数据库设计一个月
上课
层次模型又称树状模型
网状模型
关系模型
关系名(属性1,属性2.。。)
属性下标出下划线
一个关系有多个列,每个列是属性,描述实体的不同特征
关系是元组的集合,一行是一个元组,对应一个个体
域是属性的取值范围
键是一个或多个属性组成的,可以唯一标识一个元组
--一个关系中可能有多组属性都能起到标识元素的作用,因此一个关系中可能有多个键(候选键),选择一个为主键,其余为候补键
只要在某个候选键中,该属性称为主属性。否则则称为非主属性/非键属性
如果ID是主键,(ID,name)呢?——不行,要求其子集不能
参考ppt英文部分
第三章
域的笛卡尔积的子集叫作域上的关系
R(D1,D2,...Dn) D是域 n是目数
关系是一张二维表,行对应元组,列对应域
基表是实际存在的表,是实际存储数据(物理上的存储)的逻辑表示
查询表:查询结果对应的表
视图表:由基本表或者其他视图导出的表,是虚表,不对应实际存储的数据
列的顺序无所谓,行的顺序无所谓,但任意两个元组不能相同
每个分量不可再分(大表不能套小表——单元格不能再拆分,每列单元格应该一样大)
关系模式可以表示为R(U,D,dom,F)
R关系名,U属性名集合,D是U中属性所来自的域,dom是属性向域的映像集合,F是属性间数据依赖集合
三类完整性约束
- 实体完整性
保证实体可识别
若属性A是基本关系R的主属性,则A不能取空值 - 参照完整性
。。。。 - 用户定义完整性
。。。。
数据库设计
(1)系统需求分析阶段:收集数据库所有用户的信息内容和处理要求,并加以规格化和分析。
(2)概念结构设计阶段:把用户的信息要求统一到一个整体逻辑结构中。
(3)逻辑结构设计阶段:将上一步所得到的概念模型转换为某个DBMS所支持的数据模型,并对其进行优化。
(4)物理设计阶段:为逻辑数据模型建立一个完整的能实现的数据库结构,包括存储结构和存取方法。
(5)数据库实施阶段:根据物理设计的结果把原始数据装入数据库,建立一个具体的数据库并编写和调试相应的应用程序。
(6)数据库运行与维护阶段:收集和记录实际系统运行的数据,用来评价数据库系统的性能,进一步调整和修改数据库。
注意实施阶段!sql把表结构定义到磁盘上是实施阶段
SQL
sql是独立的语言,但也可以嵌入于程序中。
只用到了九个动词.
数据定义:创建、删除、修改表
CREATE SCHEMA/TABLE/...
CREATE SCHEMA<模式名>
CREATE TABLE TABLE1( COL1 INT [列级完整性约束条件]
COL2 INT
[<表级..>]);
PRIMARY KEY:主键约束
FOREIGN KEY table1(name1) REFERENCE table2(name2):表级外键约束,被参照表是name2
DROP 删除
DROP INDEX name 删除索引
DROP SCHEMA
C:
R:无下属对象才执行
修改 ALTER TABLE
[ADD name type [constraint]]
[DROP name [CASCADE|RESTRICT]]
[ALTER name type ]
能建立索引的人:
属主
DBA
DBMS:自动建立主键和UNIQUE
维护:
DBMS
使用:
DBMS自动选择
在最经常查询的列上面建立聚簇索引,一个表最多一个,不适合用于经常更新的列
8.4.2
仅当主体许可证级别大于等于客体密级时主体才能读取客体,等于密级才能写相应客体
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端