• Oracle基本原理


    基本概念

    数据:要存储的信息

    数据库DATABASE:存储数据的仓库

      数据库是指长期存储在计算机内的,有组织的,可共享的数据集合。

      数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。

       实例/例程:数据库服务启动的后台进程和内存SGA

    数据库服务=实例+数据库

    数据库管理系统Database Management System:科学地组织和存储数据,有效地获取和维护数据

    数据库管理系统是位于用户与操作系统之间的一层数据管理软件,其主要目标是使数据作为一种可管理的资源来处理,主要功能如下:

    (1) 数据定义功能:DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

    (2) 数据操纵功能:DBMS还提供数据操作语言(Data Manipulation Language,简称DML),供用户实现对数据的基本操作,如查询,插入,删除和修改等。

    (3) 数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。

    (4) 数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。

    (5) 数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。

    (6) 数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。

    (7) 通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。

    数据库系统Database System:是数据库和数据库管理系统的的集合

      oracle,甲骨文股份有限公司,全球最大的企业软件供应公司

      oracle是最大的数据库厂商提供的关系型数据库产品

      oracle发展历程

        1979年,Oracle公司推出Oracle 2

        1980年,Oracle 3

        1992年,Oracle 7

        1999年,Oracle 8i

        2001年,Oracle 9i

        2004年,Oracle10g

        2007年,Oracle 11g

     数据库模型

    数据库类型:网状结构、层次结构、关系结构、面对对象结构。关系结构,应用最为广泛

      

      关系结构

    组成:行+列

    一个关系表必须符合某些特定条件,才能成为关系模型的一部分:

    贮存在单元中的数据必须是原始的。每个单元只能存贮一条数据,这也叫信息原则(Information Principle)。

    贮存在列下的数据必须具有相同数据类型。

    每行是唯一的(没有完全相同的行) 。

    列没有顺序。

    行没有顺序。

    列有一个唯一性的名称。

    关系模型要求的最后一件事是两个基础的完整性原则。它们是实体完整性原则(entityintegrity rule)和引用完整性原则(referential integrity rule)。

    如下两个定义:

    主键(primary key)

      是能唯一标识行的一列或一组列的集合。有时,多个列或多组列可以被当作主键。由多个列构成的主键被称为连接键(concatenated key)、组合键(compound key),或者更常称为复合键(composite key)。剩余有可能被选为主键的列被叫做候选键( candidate key)或替代键(alternate key) 。

    外键(foreign key)

      是一个表中的一列或一组列,它们在其他表中作为主键而存在。一个表中的外键被认为是对另外一个表中主键的引用。实体完整性原则简洁地表明主键不能全部或部分地空缺或为空;引用完整性原则简洁地表明一个外键必须为空或者与它所引用的主键当前存在的值相一致。

       

    关键码

    超码:在关系模式中,能唯一标识元组的属性集称为超键(Super Key)。

      注:在整个地球上能唯一觉得一个人的属性是?

      DNA,通过DNA我们可以唯一确定一个人,那么这就是对于关系模式地球人来说的超键,超键一般被DBMS自己管理。

    候选码:如果一个属性集能唯一标识元组,且又不含有多于属性,那么这个属性集被称为候选键(Candidate Key)。

      注:在地球上除了DNA以外还能通过什么来唯一识别一个人?

      国籍+国家编号规则,例如在中国可以通过身份证来确定一个人,在美国是通过社保卡号,我们通过国籍+本国编号即可。

     主键:关系模式中用户正在使用的候选键称之为主键(Primary Key)。

      在中国这个我们正在使用的关系模型中,身份证号码就是主键,唯一标识记录

     外键:如果关系模式R中某属性集是其他模式的候选键,那么该属性对模型R而言是外键

    数据库范式:六种范式(主要为第一到第三范式)

    第一范式:无重复的列

      关系表中每一列都是不可分割的基本数据项。同一列中不能有多个值。

      基本类型:整型、实数、字符型、逻辑型、日期型等

      在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

      所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属 性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只 包含一个实例的信息。例如,员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表 中只出现一次。简而言之,第一范式就是无重复的列。

      举例:联系人表中要存联系方式,将手机号、联系地址、邮编、邮箱全部存在一个列中就不正确,如果要检索手机号怎么检索?没法检索,

      应该建立手机号、联系地址、邮编、邮箱这4列分别存放对应信息。

    第二范式:无重复的行,依赖于主键

      第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。

      第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。

      为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。

      第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这 一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二 范式就是非主属性非部分依赖于主关键字。

      需要有可以唯一标识一行的主键字段,比如每个班的学生信息,都有学号,就是用来唯一标识一个学生的,通过姓名是不能够的,因为有同名同姓的

    第三范式:主表与外表

      满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

      例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。

      那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。

      如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。

    数据库关系:一对一关系、一对多关系、多对多的关系

    笔记

  • 相关阅读:
    linux poll 和 select
    linux测试 scullpipe 驱动
    linux进程唤醒的细节
    linux进程互斥等待
    linux 手动睡眠
    linux一个进程如何睡眠
    [POJ 2431]Expedition
    【MongoDB数据库】MongoDB 命令入门初探
    高速排序为什么快?
    [050] 微信公众平台开发入门视频教程已公布
  • 原文地址:https://www.cnblogs.com/yuntimer/p/15939058.html
Copyright © 2020-2023  润新知