导图社区 设计与应用开发
数据库原理第二篇设计与应用开发笔记,包括关系数据理论、数据库编程以及数据库设计三部分。
编辑于2022-12-18 00:40:22 内蒙古自治区设计与应用开发
关系数据理论
问题的提出
数据依赖
一个关系内部属性与属性之间的一种约束关系
函数依赖
多值依赖
存在问题
数据冗余
更新异常
插入异常
删除异常
规范化
函数依赖
对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,称X函数确定Y或Y函数依赖于X,记作X→Y
在R(U)中,如果X→Y,并且对于X的任何一个真子集X”,都有X'+Y,则称Y对X完全函数依赖。
码
候选码
一般地,如果U函数依赖于K,即K→U,则K称为超码
范式
一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化
2NF
若RE属于1NF,且每一个非主属性完全函数依赖于任何一个候选码,则RE属于2NF。
3NF
设关系模式R<U,F>E1NF,若R中不存在这样的码X,属性组Y及非主属性Z(Z不包含于Y)使得X→Y,Y→Z成立,Y不指向X,则称R<U,F>属于3NF。
BCNF
关系模式R<U,F>属于1NF,若X→Y且Y不包含于X时X必含有码,则R<U,F>属于BCNF。
多值依赖
性质
对称性,传递性,函数依赖可看做多值依赖特殊情况
4NF
数据库编程
嵌入式SQL
处理过程
主语言为c语言时,语句格式:EXEC SQL<SQL语句>
通信
SQL语句
描述性的面向记录的语句
负责操纵数据库
高级语言语句
过程性的面向记录的语句
负责控制逻辑流程
方式
SQL->主语言:SQL通信区:用EXEC SQL INCLUDE SQLCA定义
主语言->SQL:主变量:可以附带一个指示变量:END DECLAREWSECTION
SQL查询结果->主语言:主变量和游标:游标协调面向集合的查询结果和面向记录的主语言的输出存放矛盾
建立和关闭数据库连接
建立
关闭:EXEC SQL DISCONNECT【connection】;
不用游标
查询结果为单记录的select语句,非current形式的增删改语句
说明性语句,数据定义语句,数据控制语句
使用游标
查询结果为多条记录的select语句
通过游标作为缓冲区:步骤:声明,打开,推进游标指针,关闭
current形式的update和delete语句
动态SQL
静态嵌入式SQL
静态嵌入式SQL语句能够满足一般要求
无法满足要到执行时才能够确定要提交的SQL语句、查询的条件
动态嵌入式SQL
允许在程序运行过程中临时“组装”SQL语句
支持动态组装SQL语句和动态参数两种形式
动态参数
使用参数符号
和主变量的区别
动态参数的输入不是编译时完成绑定
通过 PREPARE语句准备主变量和执行语句EXECUTE绑定数据或主变量来完成
步骤
声明
准备SQL语句: EXEC SQL PREPARE <语句名> FROM 步骤 <SQL语句主变量>;
执行准备好的语句: EXEC SOL EXECUTE<语句名> [INTO<主变量表>] [USING<主变量或常量>l;
过程化SQL
块结构
基本结构模块:可以互相嵌套,每个块完成一个逻辑操作
常量变量
变量定义:变量名 数据类型 【(NOT NULL):=初值表达式】
常量定义:常量名 数据类型CONSTANT:=常量表达式(必须给一个不能改变的值)
赋值语句:变量名称:=表达式
流程控制
条件控制语句:IF-THEN IF-THEN-ELSE和嵌套的IF语句
循环控制语句:LOOP,WHILE-LOOP和FOR-LOOP
错误处理
存储过程和函数
存储过程
过程化SQL块类型
命令块:可以被反复调用,运行速度较快,过程和函数是命令块
匿名块:每次执行时都要进行编译,不能存储到数据库,不能被调用
函数
异同
相同点:都是持久性存储模块
不同点:函数必须制定返回的类型
优点
1.运行效率高2.降低了客户端和服务器的通信量3.方便实施企业规则
ODBC编程
概述
产生原因:关系数据库管理系统的不兼容和应用程序的访问需求微软公司开放服务体系,提供一组访问数据库的应用程序编程接口
优点:1.移植性好2.能同时访问不同的数据库3.共享多个数据库资源
工作原理
体系结构
API基础
API一致性包括核心级,扩展1级,扩展2级
工作流程
子主题
数据库设计
数据库设计概念
特点 :三分技术,七分管理,十二分基础数据。
方法:E-R模型,新奥尔良方法,面向对象的数据库设计
步骤
需求分析
任务:通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
方法
调查用户
结构化分析
数据字典
数据项
数据结构
数据流
数据存储
处理过程
概念结构设计
概念模型
能真实、充分地反映现实世界,是现实世界的一个真实模型。
易于理解,从而可以用它和不熟悉计算机的用户交换意见。
易于更改,当应用环境和应用要求改变。时,容易对概念模型修改和扩充。
易于向关系、网状、层次等各种数据模型转换。
E-R模型
实体之间的联系
两个实体之间的联系
两以上实体之间的联系
单个实体
E-R图
实体型用矩形
属性用椭圆
联系用菱形
概念结构设计
两条准则
属性不能与其他实体具有联系
属性必须是不可分的数据项,不能包含其他属性
ER图的集成
合成-解决冲突
属性冲突
命名冲突
结构冲突
修改和重构-消除不必要的冗余
以数据字典和数据流图为依据
确定ER图实体之间的数据依赖
逻辑结构设计
任务
基本E-R图转换为与数据模型相符合的逻辑结构
ER图像关系模型的转换
转换内容
将实体型、实体的属性和实体型之间的联系转化为关系模式
转换原则
一个实体型转换为一个关系模式
实体型间的联系
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
合并后关系的码:不变
一个1:n联系可以转换为一个独立的关系的模式
关系的码:n端实体的码
一个1:n联系的转换-与n端对应的关系模式合并
合并后关系的码:不变
一个m:n联系转换为一个关系模式
关系的码:各实体码的组合
三个或三个以上实体间的一个多元联系转换为一个关系模式
关系的码:各实体码的组合
数据模型的优化
确定数据依赖
对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
考察是否存在各项依赖等,确定各关系模式分别属于第几范式
分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解
规范化程度越高,造成连接运算的代价越高
设计用户子模式
使用更符合用户习惯的别名
针对不同级别的用户定义不同的视图,以保证系统的安全性
简化用户对系统的使用
物理结构设计
物理结构:物理设备上的存储结构与存取方法
步骤
确定数据库的物理结构
对物理结构进行评价
物理实施阶段
存取方法
B+树索引存取方法
Hash索引存取方法
聚簇存取方法
提高某属性组查询速度 存取方法 节省存储空间
局限性
物理存储位置移动,索引必须重建
聚簇码改变时,存储位置也要改变
数据库实施和维护
数据的载入和应用程序的调试
人工方法
计算机辅助数据入库
数据库的试运行
主要工作
功能测试
性能测试
性能指标的测量
数据的分期入库
数据库的转储和恢复
数据库的运行和维护
数据库的安全性,完整性控制
数据库的转储和恢复
数据库性能的监督、分析和改进
数据库的重组织与重构造
各级模式