概念:中文名是甲骨文,它是关系数据库,世界第一个支持SQL语言的数据库;
特点: 1.支持大数据量、多用户高性能的事务处理。
2.Oracle遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。
3.实施安全性控制和完整性控制。
4.支持分布式数据库和分布处理。
5.具有可移植性、可兼容性和可连接性。
6.全球化、跨平台的数据库。
7.权限管理完善。
Oracle数据库的常见对象:
术语 | 描述 |
表 | 一种数据存储对象(数据实体)。用来存放用户数据的对象,由行和列组成,列就是字段,行就是表中的记录。 |
约束条件 | 用于保证数据完整性,被设置在单个字段或者多个字段组合上的,写入这些字段的数据必须符合约束条件的限制。支持五种约束(非空 唯一 主键 外键 check) |
视图 | 虚表。实际上视图就是一个命名的查询,用于改变基表数据的显示,简化查询。视图的访问与表的访问方式一样,同样可以用查询语句对视图中的数据进行访问。 vip = select * from emp where salary > 5000 AND salary < 10000 select * from vip 这个vip就相当于是一个视图 |
索引 | 构建于表的单字段或者字段组合上,用于加速对表中数据的查询。 |
序列 | 产生顺序的不重复数字串,被作为主键约束值的参照。 oracle独有 |
同义词 | 一个数据库对象的别名。 employees => emp |
存储过程 | 用于完成某种特定功能的PL/sql程序,存储在数据库中。 |
函数 | 用于进行复杂计算的PL/sql函数,返回一个计算结果,存储在数据库中。 |
触发器 | 由事件触发而执行的PL/sql程序,用于在特定时机执行特殊任务的,存储在数据库中。 |
包 | 一些相关的函数和存储过程的命名集合,存储在数据库中。 |
数据库安全(客户端可操作)
术语 | 描述 |
用户 | 数据库中的用户,用于组织和管理数据库对象的,通常一个应用软件的数据库对象被放在一个数据库用户下。使用数据库用户连接数据库后,可以对这些数据库对象执行操作。 |
方案 | 一组数据库对象的命名集合,一个方案唯一对应一个数据库用户,方案的名称和用户名称完全相同,在访问数据库对象的时候,通常采取的是“方案名.对象名”的方式来访问(scott.emp)。 |
权限 | 权限决定了数据库用户在数据库中能够做什么,如果用户没有权限,那么对数据库不能执行任何操作,权限由高权限用户授予。 |
角色 | 一组命名的权限,用于简化对权限的管理操作,可以一次将多个权限(一个角色的权限)授予一个或者多个用户。 |
配额 | 当用户创建存储对象(例如表,索引)时,需要一定的数据库的存储空间来存放这些对象,配额就是分配给用户的可使用存储空间的限制。 |
Oracle和Mysql的结构对比
数据库系统的分类
关系型数据库:rdbms、Mysql、oracle、SqlServer、db2、Access
面向对象的数据库odbms(性能差)
关系型数据库的三范式
第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
一张表有固定的列与不定的行,每列名称不能重复且只存在一个值
第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。
要求每张表必需要有主键
第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
外键关联,只能存关连表的主键(唯一)信息
数据库选择考虑因素:
负载/成本/安全/应用平台
小型:access/mysql
中型:mysql/sqlserver/informix
大型:sybase/oracle/db2
负载是什么?
一个数据库能承受多大的访问量,并能存储多少数据量,这些就是负载了; 就像我们现在,双11,天猫需要存东西,那这个量是比较大了,几秒钟,几百亿,上千亿。 这些东西 你用一个普通数据库,即使是oracle数据库也解决不了