1.Oracle学习笔记-Oracle 19c概述
Oracle 19c概述
1 Oracle 的发展史
Oracle是甲骨文公司的一款关系数据库管理系统,也是目前较流行的关系数据管理系统,在数据库领域中一直处于领先地位。该系统具有可移植性好、使用方便、功能强等特点。
Oracle数据库自发布至今,也经历了一个从不稳定到稳定,从功能简单至强大的过程。Oracle的每一次版本变迁,都具有里程碑意义。
- 小型: Access
- 中型: SQL server、MySQL、TiDB
- 大型: Oracle、DB2、SyBase
Oracle 的特点:
- 可用性强
- 可扩展性强
- 数据安全性强
- 稳定性强
2 关系数据库
2.1 数据库的特点:
永久存储、有组织、可共享
2.2 数据库的地位:
数据库技术产生于六十年代末,是数据管理的有效技术,是计算机科学的重要分支。
数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。数据库已经成为每个人生活中不可缺少的部分。
2.3 数据库的4个基本概念
2.3.1 数据 (Data)
数据(Data)是数据库中存储的基本对象
数据的定义:描述事物的符号记录
数据的种类:数字、文字、图形、图像、音频、视频、学生的档案记录等
数据的含义称为数据的语义,数据与其语义是不可分的。例如 93是一个数据
语义1:学生某门课的成绩
语义2:某人的体重
语义3:计算机系2013级学生人数语义3:……
学生档案中的学生记录
(李明,男,199505,江苏南京市,计算机系,2013)
语义:学生姓名、性别、出生年月、出生地、所在院系、入学时间
解释:李明是个大学生,1995年5月出生,江苏南京市人, 2013年考入计算机系
2.3.2 数据库 (Database)
- 数据库的定义
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。 - 数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
2.3.3 数据库管理系统 (DBMS, DataBase Management System)
什么是数据库管理系统
- 位于用户与操作系统之间的一层数据管理软件
- 是基础软件, 是一个大型复杂的软件系统
数据库管理系统的用途
科学地组织和存储数据、高效地获取和维护数据
数据库管理系统的主要功能
数据定义功能
提供数据定义语言(DDL)定义数据库中的数据对象
数据组织、存储和管理
- 分类组织、存储和管理各种数据
- 确定组织数据的文件结构和存取方式
- 实现数据之间的联系
- 提供多种存取方法提高存取效率
数据操纵功能
提供数据操纵语言(DML)实现对数据库的基本操作 (查询、插入、删除和修改)
数据库的事务管理和运行管理
- 数据库在建立数据库在建立、运行和维护时由数据库管理系统统一管理和控制
- 保证数据的安全性、完整性、多用户对数据的并发使用
- 发生故障后的系统恢复
数据库的建立和维护功能
- 数据库的初始数据的装载和转换
- 数据库转储、恢复功能
- 数据库的重组织
- 性能监视、分析等
- 其它功能
数据库管理系统与网络中其它软件系统的通信数据库管理系统系统之间的数据转换
异构数据库之间的互访和互操作
2.3.4 数据库系统 (DBS)
2.3.4.1 数据库系统的构成
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员
2.3.4.2 数据管理技术的产生和发展
什么是数据管理
对数据进行分类、组织、编码、存储、检索和维护, 是数据管理的中心问题
数据管理技术的发展过程
人工管理阶段(20世纪50年代中期以前)
文件系统阶段(20世纪50年代末~60年代中期)
数据库系统阶段(20世纪60年代末~现在)
数据管理技术的发展动力
应用需求的推动
计算机硬件的发展
计算机软件的发展
2.3.4.3 数据库系统的特点
学号 | 姓名 | 性别 | 年龄 | 专业 |
---|---|---|---|---|
2019015200 | 刘源 | 男 | 21 | 软件工程 |
2019015401 | 马超 | 男 | 22 | 石油工程 |
2020015621 | 李湘芸 | 女 | 20 | 储运 |
… | … | … | … | … |
奖励 |
---|
2020学年校级奖学金, 2021学年国家奖学金 |
2021校级优秀学生 |
数据结构化
- 数据的整体结构化是数据库的主要特征之一
整体结构化
不再仅仅针对某一个应用,而是面向全组织
不仅数据内部结构化,整体是结构化的,数据之间具有联系
数据记录可以变长
数据的最小存取单位是数据项
数据的共享性高,冗余度低且易扩充
- 数据面向整个系统,可以被多个用户、多个应用共享使用。
- 数据共享的好处
减少数据冗余,节约存储空间
避免数据之间的不相容性与不一致性
使系统易于扩充
数据独立性高
- 物理独立性
指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。 - 逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。 数据独立性
由数据库管理系统的二级映像功能来保证。
- 物理独立性
数据由数据库管理系统统一管理和控制
- 数据的安全性(Security)保护
保护数据以防止不合法的使用造成的数据的泄密和破坏。 - 数据的完整性(Integrity)检查
保证数据的正确性、有效性和相容性。 - 并发(Concurrency)控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。 - 数据库恢复(Recovery)
将数据库从错误状态恢复到某一已知的正确状态。
- 数据的安全性(Security)保护
2.4 数据库概念小结
- 数据库是长期存储在计算机内有组织的大量的共享的数据集合。
- 可以供各种用户共享,具有最小冗余度和较高的数据独立性。
- 数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安
全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
3 数据模型
- 数据模型是对现实世界数据特征的抽象。
- 通俗地讲数据模型就是现实世界的模拟。
数据模型应满足三方面要求:
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
- 数据模型是数据库系统的核心和基础
3.1 两类数据模型
数据模型分为两类(两个不同的层次)
- 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
- 逻辑模型和物理模型
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、
半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁
带上的存储方式和存取方法。
客观对象的抽象过程——两步抽象
现实世界中的客观对象抽象为概念模型;
将现实世界抽象为信息世界
- 把概念模型转换为某一数据库管理系统支持的数据模型。
将信息世界转换为机器世界
概念模型
概念模型的用途
概念模型用于信息世界的建模
是现实世界到机器世界的一个中间层次
是数据库设计的有力工具
数据库设计人员和用户之间进行交流的语言对概念模型
较强的语义表达能力
简单、清晰、易于用户理解
3.2 信息世界中的基本概念
3.2.1 基本概念
- 实体(Entity)
客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。 - 属性(Attribute)
实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。 - 码(Key)
唯一标识实体的属性集称为码。 - 实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型。 - 实体集(Entity Set)
同一类型实体的集合称为实体集。 - 联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系;
实体之间的联系通常是指不同实体集之间的联系;
实体之间的联系有一对一、一对多和多对多等多种类型。
3.2.2 实体-联系方法
用E-R图来描述现实世界的概念模型,E-R方法(Entity-Relationship Approach)也称为E-R模型
数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
数据操作的类型
查询和更新(包括插入、删除、修改)
- 数据模型对操作的定义
操作的确切含义、操作符号、操作规则(如优先级)、实现操作的语言 - 数据操作是对系统动态特性的描述
数据的完整性约束条件
一组完整性规则的集合
完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容数据模型对完整性约束条件的定义
- 反映和规定必须遵守的基本的通用的完整性约束条件。
- 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
3.3 常用的数据模型
3.3.1 层次模型(Hierarchical Model)
- 层次模型是数据库系统中最早出现的数据模型, 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统, 层次模型用树形结构来表示各类实体以及实体间的联系
满足下面两个条件的基本层次联系的集合为层次模型
- 有且只有一个结点没有双亲结点,这个结点称为根结点
- 根以外的其它结点有且只有一个双亲结点
根结点,双亲结点,兄弟结点,叶结点
层次模型的特点
- 结点的双亲是唯一的
- 只能直接处理一对多的实体联系
- 每个记录类型可以定义一个排序字段,也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
层次模型的完整性约束条件
无相应的双亲结点值就不能插入子女结点值
如果删除双亲结点值,则相应的子女结点值也被同时删除
更新操作时,应更新所有相应记录,以保证数据的一致性
层次模型的优越点
优点
层次模型的数据结构比较简单清晰
查询效率高,性能优于关系模型,不低于网状模型
层次数据模型提供了良好的完整性支持缺点
结点之间的多对多联系表示不自然
对插入和删除操作的限制多,应用程序的编写比较复杂
查询子女结点必须通过双亲结点
层次命令趋于程序化
3.3.2 网状模型(Network Model)
网状数据库系统采用网状模型作为数据的组织方式
满足下面两个条件的基本层次联系的集合:
- 允许一个以上的结点无双亲;
- 一个结点可以有多于一个的双亲。
例如:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联
系
引进一个学生选课的联结记录,由3个数据项组成
学号、课程号、成绩——表示某个学生选修某一门课程及其成绩
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
DDL、DML语言复杂,用户不容易使用
记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
3.3.3 关系模型(Relational Model))
关系数据库系统采用关系模型作为数据的组织方式
1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
计算机厂商新推出的数据库管理系统几乎都支持关系模型
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
- 关系(Relation)
一个关系对应通常说的一张表- 元组(Tuple)
表中的一行即为一个元组- 属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名- 主码(Key)
也称码键。表中的某个属性组,它可以唯一确定一个元组- 域(Domain)
是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。- 分量
元组中的一个属性值。- 关系模式:对关系的描述
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系名,年级)
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
下图中工资和扣除是可分的数据项 ,不符合关系模型要求
术语对比
| 关系术语 | 一般表格的术语 |
| :————: | :———————————: |
| 关系名 | 表名 |
| 关系模式 | 表头(表格的描述) |
| 关系 | (一张) 二维表 |
| 元组 | 记录或行 |
| 属性 | 列 |
| 属性名 | 列名 |
| 属性值 | 列值 |
| 分量 | 一条记录中的一个列值 |
| 非规范关系 | 表中有表(大表中嵌有小表) |关系模型的操纵与完整性约束
数据操作是集合操作,操作对象和操作结果都是关系
- 查询
- 插入
- 删除
- 更新
存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
优点
- 建立在严格的数学概念的基础上
- 概念单一
实体和各类联系都用关系来表示
对数据的检索结果也是关系 - 关系模型的存取路径对用户透明
具有更高的数据独立性,更好的安全保密性
简化了程序员的工作和数据库开发建立的工作
- 缺点
存取路径对用户透明,查询效率往往不如格式化数据模型
为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
3.3.4 面向对象数据模型(Object Oriented Data Model)
3.3.5 对象关系数据模型(Object Relational Data Model)
3.3.6 半结构化数据模型(Semistruture Data Model)
4 Oracle的安装
点击菜单栏上产品—>硬件和软件—>Oracle Database
进入之后点击
下载Oracle Database 19c
, 随后根据待安装系统架构选择适合的进行下载即可, 比如我这次想在下载之前需要登录Oracle账号即可, 当然Oracle还提供了Docker中的安装方式, 请自行学习.- 下载解压之后运行
Setup.exe
文件 安装过程
选择创建并配置单实例数据库, 点击下一步
选择桌面类系统安装,供我们自己学习,生产环境安装到Linux服务器上一般选择服务器, 随后点击下一步
指定Oracle主目录用户
选择好Oracle目录并设置好口令点击下一步, 密码不强需要二次确认
随后直接下一步等待安装完成
5 Oracle的卸载
Oracle的卸载非常简单,只需要在服务中将Oracle开头的相关服务全部停止,再删除如下注册表项目即可:
要删除的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
下的Oracle相关项要重装Oracle 数据库, 建议重启计算机