06.关系数据库理论
问题的提出 关系模式的表示 关系模式由五部分组成, 是一个五元组: R(U, D, DOM, F) R: 关系名 U: 一组属性 D: 属性组U中的属性所来自的域 DOM: 属性到域的映射 F: 属性组U上的一组数据依赖 数据依赖 一个关系内部属性之间的一种约束关系 函数依赖 (FD) 多值依赖 (MVD) 函数依赖 x->y 表示为 y函数依赖于x 函数依赖存在的问题 数据冗余 更新异常 插入异常 删除异常 函数依赖的解决方式 把单一的模式分成多个关系模式 分离不合适的函数依赖 规范化 函数依赖 x->y 表示为 x函数确定y 或 y函数依赖于x 非平凡函数依赖 平凡函数依赖 完全函数依赖(F) 部分函数依赖(P) 传递函数依赖 码 (关键字/键) 候选码 主属性 非属性 全码: 属性组的所有属性都是码 超码 主码 外码 范式 符合某一种级别的关系模式的集合 2NF 消除非主属性对码的部分函数依赖 每一个非主属性都完全函数依赖于任何一个候选码 不属于2NF,...
05.数据库完整性
提供定义完整性约束条件的机制 提供完整性检查的方法 违约处理 实体完整性 实体完整性定义 关系模型的实体完整性 设置主码 PRIMARY KEY 实体完整性检查和违约处理 完整性检查的内容 检查主码值是否唯一 检查主码的各个属性是否为空 检查主码值方法 全表扫描 B+数索引 参照完整性 参照完整性定义 设置外码 FOREIGN KEY 参照完整性检查和违约处理 修改参照表 – 违约处理为 拒绝 修改被参照表 – 违约处理为 拒绝/级联删除/设置为空值 设置外码时可在后面显示指定违约处理方式 123FOREIGN KEY (列名) REFERENCES <表名>(列名)ON <操作类型> CASCADE # 级联处理ON <操作类型> NO ACTION # 拒绝 用户定义的完整性 属性上的约束条件 属性上约束条件的定义 列值非空 NOT NULL 列值唯一 UNIQUE 检查列值是否满足一个条件 CHECK 元组上的约束条件 元组上约束条件的定义 表级上使用...
04.数据库安全性
数据库安全性概述 数据库的不安全因素 安全标准简介 TESEC标准 四组七个等级:D、C(C1, C2)、B(B1, B2, B3)、A(A1) CC标准 数据安全性控制 非法使用数据库的情况 编写合法程序绕过数据库管理系统及其授权机制 直接或编写应用程序执行非授权操作 通过多次合法查询数据库从中推导出一些保密数据 计算机系统的安全模型 数据库有关的安全性 存储控制流程 首先, 数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别, 防止不可信用户使用系统 然后, 在SQL处理层进行自主存取控制和强制存取控制, 进一步可以进行推理控制 还可以对用户访问行为和系统关键操作进行审计, 对异常用户行为进行简单入侵检测 用户身份鉴别 存取控制 用户权限定义和合法权检测机制一起组成了数据库管理系统的存取控制子系统 定义用户权限, 并将用户权限登记到数据字典中 权限是指用户对某一数据对象的操作权力 DBMS提供适当的语言来定义用户权限, 存放在数据字典中 合法权限检查 用户发出存取数据库操作请求 DBMS查找数据字典,...
03.关系数据库标准语言SQL
SQL概述 结构化查询语言 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供多种使用方式 语言简洁, 易学易用 基本概念 支持三级模式 数据定义 模式的定义与删除 定义模式 CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 在CREATE SCHEMA中可以接受CREATE TABLE CREATE VIEW GRANT子句 删除模式 DROP SCHEMA <模式名> <CASCADE|RESTRICT> CASCADE(级联) RESTRICT(限制) 基本表的定义, 删除与修改 定义基本表 123456CREATE TABLE <表名> ( <列名> <数据类型> [<列级完整性约束条件>] [, <列名> <数据类型> [<列级完整性约束条件>]] ... [,...
02.关系数据库
关系数据结构及形式化定义 关系 单一的数据结构 – 关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构 – 二维表 从用户角度, 关系模型中数据的逻辑结构是一张二维表 关系模型是建立在集合代数的基础上 域 笛卡尔积 元组 分量 基数 关系 关系: R(D1, D2, …, Dn) 元组 单元关系与二元关系 关系的表示: 二维表 属性 码 候选码: 唯一标识一个元组的某一属性组 全码 主码 主属性 非主属性 三类关系 基本关系: 实际存在的表, 是实际存储数据的逻辑表示 查询表: 查询结果对应的表 视图表: 由基本表或其他视图表导出的表, 是虚表, 不对应实际存储的数据 基本关系的性质 关系模式 关系模式是对关系的描述 (关系模式是型, 关系是值) 元组集合的结构 一个关系通常由赋予它的元组语义确定 现实的世界中还存在着完整性约束 关系模式可以形式化地表示为: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM:...
01.绪论
数据库系统概述 基本概念 数据 数据库(DB) 长期存储在计算机内、有组织的、可共享的大量数据的集合 永久存储 有组合 可共享 数据库管理系统(DBMS) 数据定义功能(数据定义语言DDL) 数据组织、存储和管理 数据操纵功能(数据操作语言DML) 数据库的事务管理和运行管理 数据库的建立和维护功能 数据库系统(DBS) 由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成 数据管理技术的产生和发展 人工管理阶段 文件系统阶段 数据库系统阶段 数据模型 现实世界的模拟 三类数据模型 概念模型 用于数据库设计 逻辑模型 关系模型...
14.日志
日志 作用 跟输出语句一样,可以把程序在运行过程中的详细信息都打印在控制台上。 利用log日志还可以把这些详细信息保存到文件和数据库中。 使用步骤 不是java的,也不是自己写的,是第三方提供的代码,所以我们要导入jar包。 把第三方的代码导入到当前的项目当中 把配置文件粘贴到src文件夹下 在代码中获取日志对象 调用方法打印日志 日志级别 TRACE, DEBUG, INFO, WARN, ERROR 还有两个特殊的: ALL:输出所有日志 OFF:关闭所有日志 日志级别从小到大的关系: TRACE < DEBUG < INFO < WARN < ERROR 配置文件 123456789101112131415161718192021222324252627282930313233343536373839404142<?xml version="1.0" encoding="UTF-8"?><configuration>...
13.动态代理
动态代理 特点: 无侵入式的给代码增加额外的功能 为什么需要代理: 对象需要做的事太多, 可以通过代理来转移部分职责 代理长什么样: 对象有什么方法想被代理, 代理就一定要有对应的方法 Java通过什么来保证代理的样子: 通过接口保证, 后面的对象和代理需要实现同一个接口, 接口中就是被代理的所有方法 如何为Java对象创建一个代理对象 java.lang.reflect.Proxy类: 提供了为对象产生代理对象的方法
12.反射
反射 反射允许对成员变量, 成员方法和构造方法的信息进行编程访问 作用 获取一个类里面所有的信息, 获取到了之后, 再执行其他的业务逻辑 结合配置文件, 动态地创建对象并调用 获取class对象 三种方式 源代码阶段: Class.forName(“全类名”); 加载阶段: 类名.class 运行阶段: 对象.getClass(); 获取构造方法 获取成员变量 获取成员方法
11.网络编程
网络编程 三要素 IP 127.0.0.1 (永远表示本机) 端口号 取值范围为0~65535, 其中0~1023之间的端口号已用于一些知名的网络服务或应用 协议 UDP: 面向无连接, 速度快, 大小限制一次最多发送64K, 数据不安全, 易丢失 TCP: 面向连接, 速度慢, 没有大小限制, 数据安全 InetAddress类 static InetAddress getByName(String host) : 确定主机名称的IP地址. 主机名称可以是机器名称, 也可以是IP地址获取此IP地址的主机名 String getHostName() : 获取此IP地址的主机名 String getHostAddress() : 返回文本显示中的IP地址字符串 UDP通信 12345678910111213141516171819/* 发送端 */// 1.创建DatagramSocket对象// 空参: 所有可用的端口中随机一个进行使用// 有参: 指定端口号进行绑定DatagramSocket socket = new...