首页 > 数据库 > Oracle > oracle入门基础简介
静静oracle入门笔记 第一、二章 简介
1.1数据库简介
1、三种数据模型:网状模型、层次模型、关系模型。
2、1956年IBM开创了随机存储的先河。1974年IBM提出SQL结构化查询语言。
3、主流数据库:oracle、sybase、DB2、SQL Server、MySQL
·oracle:美国甲骨文公司。大型关系数据库,目前最流行广泛的客户端/服务器体系结构数据库。
·sybase:sybase公司,较高性能和安全性,具有跨平台的能力。
·DB2:IBM公司,支持各种机型及操作系统环境,支持面向对象编程,具有强大的开发和管理工具。
·SQLserver:微软公司,相对前三个安全性较差,但是占系统资源少。
·mysql:mysql公司,使用简单、操作方便,性能高。开源的免费数据库软件。
4、oracle的优点:
·强大的性能,是海量数据存储的首选。
·独特的理念,如全新的表空间理念、更高效的锁定机制。
·增强的sql,例如层次化查询就是oracle的特色查询。
·提供良好的分布式管理,轻松实现多数据库的协调工作。
1.2安装配置oracle
1、安装环境:1024MB以上物理内存,1.5GB~3.5GB磁盘空间。
2、path环境变量的意义:当命令行在执行某个命令时,如果当前目录下不存在相应的可执行文件,那么将直接在path变量所指定的目录下寻找。
2.1实体和联系的概念
实际存在的事物都可以看做实体,事物之间的关联就可以看做联系。
·实体有属性,属性的取值范围叫做值域(domian),一个实体区别与其他实体的唯一标识叫做实体的码(key),为实体码附加其他属性更能唯一确定实体,实体的码与其他属性的结合叫做超码(super key)。
·联系,一对一,一对多,多对多。
2.2 E-R图
一对一:班级和班号,学生姓名和学号
学习与成绩就是关系与属性
学生与学号就是实体与属性
2.3 e-r模型到关系模型
则学生e-r
课程e-r
那么关系模型即:
全局关系模型,就是画出所有关系,比如再加上学生-班级,班级-学校,学校-校长等一系列的关系都画上。
联系转换为关系的要点:
1、e-r图中的每个实体集对应一个关系,该关系包括所有实体的属性,并指定主键,一般可以新建一个与业务无关的列作为主键,如学生的学生id列,该列与学校的实体无任何业务关系。
2、一对一关系:
·a的主键作为b实体的关系列;
·B的主键作为A实体的关系列;
·建立新关系,包含实体A、实体B的主键,然后将联系的属性也植入整个新关系中。
一对多关系:
·将“一方"为主关系,将“多方”为从关系。如班级和学生,则班级的id作为学生的属性。
·建立新的关系。
多对多关系:
无论将联系的属性作为哪一方的属性,都会导致信息丢失,所以只能建立新的关系,包含A、B的主键,然后将联系的属性也植入新的关系中。
2.4范式
第一范式:数据库表中的列都是单一的属性,不可再分。
第二范式:建立在第一范式基础上,数据表里的所有数据都要和该数据表的主键有完全依赖关系。
(数据库表中不存在非关键列对任意关键字的部分函数依赖,也即所有非关键列都完全依赖于任意关键列。)
例如,学号、年龄,班级,选课,课程学分
这里就是课程学分只依赖于选课,不依赖于学号,即部分依赖。
学号和课程是候选码,是表的位置标识,这样会存在
造成1、数据冗余;2、更新异常;3、删除异常;4、插入异常。
解决部分依赖的方法是拆分两个表,这样表中的依赖关系就是不可约依赖。
第三范式:第三范式指数据库中不能存在传递函数依赖关系。
比如学号,姓名,年龄,学院,学院电话号码,学院地址
符合第二范式,所有非关键字都依赖于学号。
但是学号->学院
这样就到时学号——>学院——>学院电话号码,存在传递函数依赖。也会导致冗余,更新表异常。
解决办法:拆分为两个表。
BCNF范式:有机会再看吧
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9224926/viewspace-1117305/ ,如需转载,请注明出处,否则将追究法律责任。