当前位置: 首页 > news >正文

数据库原理

3、数据库原理
1)关系模型的组成、操作、完整性约束概念;
2)关系数据库三级模式;
3)关系运算(选择、投影、连接、除、并、交、差);
4)关系关系规范化划分理论(1NF、2NF、3NF);
4)SQL语句(SELECT、UPDATE、DELETE)的使用;
5)索引、视图、触发器、存储过程概念及其用途;
6)数据库设计的步骤;
7)数据库概念模型、逻辑模型和物理模型概念;
8)事务及其特点。

表的基本操作

交、并、减、乘、除、选择、投影、连接

在这里插入图片描述

交,并

减S-A:去除S中所有A的元素

乘SxA:
在这里插入图片描述
选择、投影
在这里插入图片描述
等值连接、自然连接
在这里插入图片描述

数据库

建表、视图、增、删、改、查、并

设某公司的信息管理系统中有三个基本表:
职工表 E(E#,ENAME,AGE,SEX, ECITY),其属性是职工编号、姓名、年龄、性别和籍贯。
部门表 C(C#,CNAME,TELE),其属性是部门编号、部门名称和电话号码
工作表 W(E#,C#,SALARY),其属性是职工编号、部门编号和工资。

(1) 用 SQL 语言建立 W 表,要求满足以下完整性约束条件的定义:
① 定义关系的主码,② 定义参照完整性,③ SALARY≥1000。

例题

-- 首先创建职工表E
CREATE TABLE E (E# INT PRIMARY KEY,    -- 职工编号为主码ENAME VARCHAR(100),    -- 姓名AGE INT,              -- 年龄SEX CHAR(1),          -- 性别ECITY VARCHAR(100),     -- 籍贯CHECK AGE>0            --约束
);-- 然后创建部门表C
CREATE TABLE C (C# INT PRIMARY KEY,    -- 部门编号为主码CNAME VARCHAR(100),    -- 部门名称TELE VARCHAR(20)       -- 电话号码
);-- 最后创建工作表W,并定义主码、外码和工资约束
CREATE TABLE W (E# INT,                -- 职工编号C# INT,                -- 部门编号SALARY DECIMAL(10, 2), -- 工资,使用DECIMAL类型以精确表示小数PRIMARY KEY (E#, C#),  -- 主码为职工编号和部门编号的组合FOREIGN KEY (E#) REFERENCES E(E#),  -- 外码E#引用职工表E的主码FOREIGN KEY (C#) REFERENCES C(C#),  -- 外码C#引用部门表C的主码CHECK (SALARY > 1000)  -- 工资必须大于1000
);

(2) 查询年龄大于 25 岁的女职工的职工编号。

SELECT E#
FROM E
WHERE AGE > 25 AND SEX = 'f';

(3) 为每个部门中超过 50 岁的女职工加薪 1000 元。

UPDATE W
JOIN E ON W.E# = E.E#
SET W.SALARY = W.SALARY + 1000
WHERE E.AGE > 50 AND E.SEX = 'f';

(4) 请为女职工信息建立一个视图 E_W,属性包括职工编号 E#, 职工姓名 ENAME, 所在部门编号 C#,所在部门名称 CNAME,工资 SALARY。

CREATE VIEW E_W AS
SELECT E.E# AS 职工编号,E.ENAME AS 职工姓名,W.C# AS 所在部门编号,C.CNAME AS 所在部门名称,W.SALARY AS 工资
FROM E
JOIN W ON E.E# = W.E#   --并表
JOIN C ON W.C# = C.C#
WHERE E.SEX = '女'
ORDER BY W.SALARY ASC;  --排序

INSERT INTO users (name, email) 
VALUES ('John Doe', 'john.doe@example.com');

DELETE FROM users WHERE id = 1;

UPDATE users SET email = 'new.email@example.com' WHERE id = 1;

SELECT * FROM users WHERE id = 1;

在这里插入图片描述
在这里插入图片描述

关系模式

元素集,用括号表示。

基本函数依赖:
元素之间依赖关系,用括号表示。

闭包:
根据所给元素,推其最大元素集

候选码:
函数依赖进一步分L、R。
消除L、R公共元素,只在L中出现的必为候选码,只在R中出现的必不是候选码,其余元素进一步确认。
从L中候选码开始试,加入适当的其余集中的元素,直到可以推出全集。此时的元素为候选码集。

三级范式+BCNF
第一范式:所有数据项均为原子,不可再分,且无重复。
第二范式:第一范式+非主属性对主键必须完全依赖,不允许部分依赖。
第三范式:第一范式+第二范式+所有依赖关系必须为直接依赖,不允许传递依赖。
BCNF:候选码只包含L。

在这里插入图片描述
在这里插入图片描述

E-R图

主体:长方形
属性:圆形
对应关系:菱形
在这里插入图片描述

在这里插入图片描述

基础概念

两段锁协议
两段锁协议是数据库并发控制的核心机制,通过约束锁的获取与释放顺序,确保事务调度的可串行性。
事务被明确划分两个阶段,通过”先加锁,后解锁“的强制操作,避免并发冲突。
加锁阶段,事务读、写前申请锁,禁止释放任何锁
解锁阶段,释放已经持有的锁,但不能再申请新锁。(若多个事务互相等待对方释放资源,将引发死锁)


http://www.mrgr.cn/news/97290.html

相关文章:

  • (二)输入输出处理——打造智能对话的灵魂
  • AI Agent开发大全第二十课-如何开发一个MCP(从0开发一个MCP Server)
  • 250405-VSCode编辑launch.json实现Debug调试Open-WebUI
  • Android学习总结之应用启动流程(从点击图标到界面显示)
  • STM32F103C8T6实现 SG90 180 °舵机任意角度转动
  • 【蓝桥杯】算法笔记3
  • JJJ:generic netlink例程分析
  • Flask+Vue构建图书管理系统及Echarts组件的使用
  • 第3课:状态管理与事件处理
  • 高级:分布式系统面试题精讲
  • 一、简单的 Django 服务
  • (一)从零开始:用 LangChain 和 ZhipuAI 搭建简单对话
  • 基于YOLO11实例分割与奥比中光相机的快递包裹抓取点检测
  • Python3 学习笔记
  • MySQL 基础入门
  • 神经网络能不能完全拟合y=x² ???
  • ubuntu部署ollama+deepseek+open-webui
  • (五)智能体与工具协同——打造智能对话的超级助手
  • (四)数据检索与增强生成——让对话系统更智能、更高效
  • (三)链式工作流构建——打造智能对话的强大引擎