数据库相关概念和冷知识
数据库概念知识:
关系数据库概念
名词 | 意义 | 数据 |
---|---|---|
关系模型 | 实体 + 关系 | |
实体 | 表 | 行 + 列 |
行 | 实体的一个实例 | 数据的记录 |
列 | 实体的一个特征或属性 | 记录中的域 |
通过关系就可以用一个实体的信息来查找另一个实体的信息。
Oracle内存结构(系统全局区SGA+程序全局区PGA)
SGA是用于存储数据库信息的内存区,该信息为数据库进程所共享,同时包含Oracle服务器的数据和控制信息。
数据高速缓冲区
在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(Oracle数据库中的最小存储和处理单元),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。
包括:
keep缓冲池、recycle缓冲池、default缓冲池。
重做日志缓冲区
任何事务在记录到重做日志之前都必须首先放到重做日志缓冲区中,然后由日志写入进程定期将此缓冲区的内容写入重做日志中。
共享池
用于存储如SQL、PL/SQL存储过程及包、数据字典、字符集信息和安全属性等。
包括:
库高速缓存、字典高速缓冲区。
库高速缓存包含共享SQL区、私有SQL区、PL/SQL存储过程及包、控制结构。该区存放有经过语法分许并且正确的SQL语句,并随时准备被执行。
字典高速缓冲区用于存放Oracle系统管理自身需要的所有信息,这些信息是登录到Oracle的用户名,这些用户有哪些数据库对象以及这些数据库对象的位置等。
大池
大池是可选的缓冲区,它可以根据需要由管理员进行配置。它可以提供一个大区以供数据库的备份与恢复等操作。
输入字符 &
查询数据库设置的表、视图、索引、序列、同义词
select table_name from user_tables;-- 查看创建的表
select view_name from user_views;-- 查看创建的视图
select index_name,table_name from user_indexes;-- 查看创建的索引
select sequence_name,min_value,max_value,increment_by from user_sequences;-- 查看创建的序列
select synonym_name,table_name from user_synonyms;-- 查看创建的同义词
oracle试验参数替换
新建一个最简单的表。
CREATE TABLE "GK_TEST" (
"id" CHAR(3 BYTE) NULL ,
"text" VARCHAR2(255 BYTE) NULL
)
命令行 sqlplus 用户名/密码 进入
insert into GK_TEST values ('&1','&2')
注意点:最后要
commit;
命令行有效,数据库连接工具执行只会插入’&1’,’&2’。
数据库完整性
数据完整性:
类别 | 作用(实现方式) |
---|---|
实体完整性 | 唯一标识表中的每一条记录(主键、唯一键、IDENTITY属性) |
域完整性 | 表中特定列数据的有效性,不会输入无效的值(类型、缺省、约束、空值) |
引用完整性 | 维护表间数据的有效性、完整性(主外键关联) |
自定义完整性 | 根据业务处理流程定义特定业务规则(存储过程、触发器、规则) |