数据库的逻辑结构
数据库的最基本的逻辑结构组成架构

数据库的最基本的逻辑结构组成架构表的组成表是数据库的最基本的逻辑结构,⼀切数据都存放在表中,⼀个ORACLE数据库就是由若⼲个数据表组成。
其它数据库对象都是为了⽤户很好地操作表中的数据。
表是关系模型中反映实体与属性关系的⼆维表格,它由列和⾏组成,通过⾏与列的关系,表达出了实体与属性的关系表的组成部分有:列/域/字段:表的内容,也就是实体的各个属性,组成了表的各个列。
列名:列的名称。
长度:该列所能容纳的最⼤数据位数。
类型:该列存储的数据类型,常⽤数据类型如0.0.0 0. 所⽰。
关键字:该列能唯⼀表⽰⼀⾏内容,则称该列为关键字。
⾮空列:该列值是不能为空的。
⾏/记录:表中所有列组合在⼀起形成的⼀条信息,称之为⼀⾏或⼀条记录。
所属表:记录⼀定是归属于某⼀张表的。
⾏号:每条记录在数据库中的⼀个定位位置。
在ORACLE数据库中,每张表有⼀系统提供的伪列来定位每条记录。
记录长度:该记录所有⾮空列的长度求和得出的字节数。
2. 建表命令建表命令如下:CREATE TABLE tablename(column1 datatype [DEFAULT expression] [constraint],column1 datatype [DEFAULT expression] [constraint],……)[STORAGE⼦句][其他⼦句];建表举例:create table AUTOCALLLOG( ID VARCHAR2(20) not null ,CityId NUMBER(4) NULL)TABLESPACE SERVICE_HIST_DATPCTFREE 10PCTUSED 90STORAGE( INITIAL 10MNEXT 10MMINEXTENTS 2MAXEXTENTS 500pctincrease 0);3. 删除表中数据删除表中数据有以下两种⽅式:Delete :删除数据时,数据库需要写⽇志,ORACLE数据库还需要占⽤回滚段,每次事务越⼤,对数据库的冲击越⼤,所以在删除或者更新数据时,⼀定要注意控制事务的⼤⼩。
第三章 数据库的逻辑结构与物理结构设计

第三章数据库的逻辑结构与物理结构设计数据库的逻辑结构设计的主要任务是把概念层数据模型转换为组织层数据模型,即根据数据库的概念结构导出特定的数据库管理系统可以处理的数据库的逻辑结构。
与数据库的逻辑结构相对应,本章我们称组织层的数据模型为逻辑模型。
数据库的物理结构设计的主要任务是为逻辑模型选取一个最适合应用要求的物理结构。
本章主要介绍以下内容:•逻辑模型•关系模型•关系规范化•逻辑结构设计的任务•数据库的物理结构设计第一节逻辑模型概念模型经过转换成为逻辑模型(也称为结构数据模型、组织层数据模型,常简称为数据模型)。
它直接面向数据库的逻辑结构,直接与DBMS有关。
一、主要的逻辑模型目前,数据库领域中主要的逻辑模型有层次模型、网状模型、关系模型和面向对象模型等。
1. 层次模型层次模型(Hierarchical Model)是按照层次结构的形式组织数据库数据的数据模型,是数据库中使用较早的一种数据模型,其典型代表是IBM公司研制的、曾经被广泛使用的第一个大型商用数据库信息管理系统IMS(Information Management System)。
(1)数据结构。
层次模型使用树形结构表示实体及实体间的联系。
层次模型的基本特点是:有且只有一个结点没有父结点,这个结点称为根结点;根以外的其他结点有且只有一个父结点。
在层次模型中,树的结点是记录类型。
上一层记录类型和下一层记录类型之间的联系是1:n的,用结点之间的连线表示。
这种联系是父子之间的一对多联系。
层次模型如图3-1所示。
在层次模型数据库中查找记录,必须指定存取路径,即从根结点开始沿途所经过的路程。
在层次模型中,同一父结点的子结点称为兄弟结点,没有子结点的结点称为叶结点。
如果要存取某一记录类型的记录,可以从根结点开始,按照有向树层次逐层向下查找,查找路径就是存取路径。
任何一个给定的记录值只有按其路径查看时,才能显示其全部意义,没有一个记录值能够脱离父记录而独立存在。
数据库文件的逻辑结构形式

数据库文件的逻辑结构形式
数据库文件的逻辑结构形式有以下几种:
1. 层次结构:数据库文件以层次结构的形式组织,其中每个层级都有一个父节点和多个子节点。
这种结构形式适用于有明确定义的父子关系的数据。
2. 网状结构:数据库文件以网状结构的形式组织,其中多个数据元素可以相互连接。
每个数据元素可以有多个关联的数据元素,形成一个复杂的关系网络。
3. 关系结构:数据库文件以关系结构的形式组织,其中数据以表的形式存储,每个表由多个字段组成,每个字段对应一个数据项。
表之间通过关系建立连接,实现数据的关联和查询。
4. 对象结构:数据库文件以对象结构的形式组织,其中数据以对象的形式存储,每个对象包含多个属性和方法。
对象之间可以相互关联,形成复杂的数据模型。
这些逻辑结构形式可以根据具体的需求和数据模型选择和设计,不同的结构形式适用于不同的应用场景和数据类型。
数据库的逻辑结构

数据库逻辑存储结构数据库的物理存储结构对应一系列的物理文件,这部分主要描述的是数据存储的实际位置,不过数据如果存储,是以什么结构存储到数据文件中,则取决于数据库的逻辑存储结构.Oracle数据库在执行操作时,并不是以数据文件为单位,而是从逻辑上定义出一组结构,操作的数据可以一步步细分不同的存储单元,oracle 操作数据的过程,实际上就是对这些不同级别的存储单元进行维护和管理的过程.逻辑存储概述--块(block)块是逻辑存储结构中最小存储单位,所有数据的存储都是以块为单位进行.初始化参数文件中BLOCK_SIZE来指定一个块的大小,也就是说oracle的块大小在数据库创建时指定,一经指定就无法修改,除非重建数据库.--区(extent) 区是oracle数据库的最小分配单位,由一组连续的块组成,这些块在物理上可能并不连续(也就是OS块),但是必需都存在于一个物理文件,单个区在分配时不能跨文件分配(这个文件应该是数据文件).在创建对象时,最少会为该对象分配一个区,这个区叫做初始区(initial extent) 在随着对象的不断扩展,超出初始区后,oracle就会再为其分配扩展区(incremental extent)扩展区不一定要与初始区连续存放,甚至大小也可以与初始区不同,不过扩展区也必需是由连续的块组成.段(segment)从逻辑的角度看,段由一个或多个区组成,它是一个真正逻辑结构.可以将段看作是对象的全部或某个部分例如:一个普通的堆组织表(不含分区,LOB类型及索引等)那么该表就对应一个段,不管这个表中被存放多少记录,它都仍然只对应一个段,不过如果该表创建了索引,那么索引数据会存放专门的索引段,如果该表有LOB类型,LOB数据也会被存入单独的数据段.--表空间(tablespace)从逻辑上定义,是由一个或多个段组成,从物理上定义是由一个或多个数据文件组成.表空间是oracle数据库中空间分配的最大逻辑单位,在往上就是数据库级别.平时进行的创建对象的操作,都是在表空间一级进行.**提示:如创建存储对象时只能指定存储到哪个表空间,而不能指定存储到更细粒度的逻辑结构,如段,区,块.也不能指定存储到某个数据文件中.*注意*:在创建存储对象时,只需要指定存储所在的表空间(如果未指定,则存储到用户当前的默认表空间中),其他一切由oracle自动处理图: 每层结构都是一对多的关系逻辑结构对应关系图--块block oracle对数据文件中存储的空间进行管理就是以数据块(oracle块)为最小单位,oracle中的块在设计时是操作系统块的整倍数,可以设置的值有2KB,4KB,8KB,16KB和32KB--在9i前oracle只有一种数据块大小, 9i后开始,oracle提供多种块大小的支持,按照类别来分,为标准块与非标准块,标准块是在创建数据库时由初始化参数 DB_BLOCK_SIZE指定,该参数一经指定之后无法修改,除非重建数据库;同事DBA在创建表空间时又可以为表空间指定与标准块不同的块大小,这就所谓的非标准块块结构块结构图三思 471 16-5块结构说明数据块头:包含块的一些属性信息,如块的物理位置,块所属的段的类型(如数据段,索引段,回滚段等)表目录:块中存储的数据为表数据,表目录中保存关于这个表的相关信息行目录:块中存储的数据为表数据,表目录中保存数据行的相关信息提示:一个块中可能包含多条表记录,也可能只保存某条记录的一部分,这要视记录的长度及该块的空间分配情况而定.。
数据库的逻辑结构设计

数据库的逻辑结构设计
1数据库逻辑结构
数据库逻辑结构是指数据库中数据的逻辑系统,它由一系列的数据模型来表示数据的存储和操作。
它的主要任务就是描述不同的数据元素之间的逻辑关系以及操作他们的方式。
2逻辑结构的组成
逻辑结构的组成是数据的三层构造:模式(Schema)、域(Domain)和实体(Entity)。
模式是指数据库的数据模型,它由一系列的关系和实体组成,它描述数据在概念上如何被组织。
域是指数据值的数据类型,它描述组成实体的数据类型,比如整数、字符串、日期等类型。
实体是指数据的抽象术语,它由属性的组合组成,比如用户名、用户id和性别等属性。
3逻辑结构的作用
逻辑结构是实现数据库之间和应用之间数据操作的基础,它为应用程序和用户提供容易理解的查询和处理方式,不仅能够满足用户需求,同时还可以让用户更容易进行数据操作,节约时间和提高效率。
数据库逻辑结构

数据库逻辑结构
数据库逻辑结构是计算机科学中的一门基本分支,它主要负责构建数据库系统的数据模型,使数据库管理系统能够实现完整的数据存储、系统控制和数据处理功能。
数据库逻辑结构的基本思路是从现实世界出发,研究从实体、属性、类型到数据库表结构之间的关系,以及数据库表结构与数据处理功能之间的关系,建立出的一个复杂的数据存储和处理总体架构。
典型的数据库逻辑结构包括:元模型、对象模型、数据字典模型、逻辑数据模型等。
它们之间有关系,彼此想象。
元模型是一个用于构建复杂数据库模型的连接框架,是数据库逻辑结构的最高组织形式。
数据字典模型主要是一些特定表单中数据的描述。
而逻辑数据模型是数据库表结构,它定义了数据表字段、索引字段、关系表等的视图结构,可以五面分别的模型。
数据库逻辑结构的主要作用是实现数据存储和处理功能。
它把各种数据存储和处理结构以及索引结构的表示形式聚集到一起,以保证数据的安全与完整,同时也方便数据库系统的维护。
此外,数据库逻辑结构有利于理解和学习,可以让我们清晰地了解数据库管理系统内部的存储和处理组织结构,也方便随时进行修改。
总之,数据库逻辑结构具有广泛的应用,可以帮助我们更科学的控制和管理数据库系统,让我们可以更好的满足使用者的实际需要。
数据库逻辑结构图

数据库逻辑结构图一、实体的关系模型1)、管理员(用户名,密码)2)、个人(帐号,密码,姓名,年龄,出生日期,电话号码)3)、备忘录(时间,地点,事件)4)、通讯录(姓名,城市,备注,工作地点,联系方式)5)、日记(日期,地点,人物,事情)6)、财务(标志,消费项目,消费时间,消费金额,剩余金额,总收入)其中有下划线的是主键。
二、关系模型合并1)、管理员(用户名,密码)2)、个人(帐号,密码,姓名,年龄,出生日期,电话号码)3)、备忘录(时间,地点,事件)4)、通讯录(姓名,城市,备注,工作地点,联系方式)5)、日记(日期,地点,人物,事情)6)、财务(标志,消费项目,消费时间,消费金额,剩余金额,总收入)三、关系模型的函数依赖关系1)、用户名——>密码2)、(帐号,密码)——>姓名,(帐号,密码)——>年龄,(帐号,密码)——>出生日期,(帐号,密码)——>电话号码3)、时间——>地点,时间——>事件4)、姓名——>城市,姓名——>备注,姓名——>工作地点,姓名——>联系方式;5)、日期——>地点,日期——>人物,日期——>事情6)、标志——>消费时间,消费时间——>消费项目,消费时间——>消费金额,标志——>总收入,标志——>剩余金额。
其中6不是第一范式其他都是第一范式,且6为第二范式.四、优化1)、管理员(用户名,密码)2)、个人(帐号,密码,姓名,年龄,出生日期,电话号码)3)、备忘录(时间,地点,事件)4)、通讯录(姓名,城市,备注,工作地点,联系方式)5)、日记(日期,地点,人物,事情)6)、财务(标志,消费时间,剩余金额,总收入)消费(消费时间,消费项目,消费金额)。
给出数据库逻辑结构设计

给出数据库逻辑结构设计一、引言数据库逻辑结构设计是数据库系统中非常重要的一环,它决定了数据库中数据的组织方式、数据的存储结构以及数据之间的关系。
一个良好的数据库逻辑结构设计能够提高数据库系统的性能和效率,使得数据的访问更加方便和快速。
本文将介绍数据库逻辑结构设计的基本概念和步骤,并结合实例进行说明。
二、数据库逻辑结构的基本概念1. 表(table):是数据库中最基本的逻辑结构,用来表示实体或概念的集合。
每个表由若干个字段(field)组成,每个字段表示表中的一个属性。
2. 关系(relation):是表之间的关联,它描述了表之间的连接条件和依赖关系。
关系可以是一对一、一对多或多对多的关系。
3. 主键(primary key):是表中用来唯一标识一条记录的字段,它保证了表中的每条记录都具有唯一性。
4. 外键(foreign key):是表中用来引用其他表中主键的字段,它用来建立表之间的关系。
5. 索引(index):是数据库中用来提高数据检索速度的一种数据结构,它可以加快数据的查找和排序操作。
三、数据库逻辑结构设计的步骤数据库逻辑结构设计是一个迭代的过程,它包括以下几个步骤:1. 需求分析:在数据库逻辑结构设计之前,首先需要进行需求分析,明确数据库系统的功能和要求。
根据用户的需求,确定需要存储和管理的数据,并确定数据之间的关系和约束条件。
2. 概念设计:在概念设计阶段,将需求分析得到的概念模型转化为数据库的概念模型。
常用的概念模型有层次模型、网状模型和关系模型。
其中,关系模型是最常用的概念模型,它将数据组织为二维表格的形式。
3. 逻辑设计:在逻辑设计阶段,将概念模型转化为数据库的逻辑模型。
逻辑模型是数据库中数据的组织方式和存储结构的描述。
常用的逻辑模型有关系模型、面向对象模型和半结构化模型。
4. 数据库表设计:在数据库表设计阶段,根据逻辑模型设计数据库中的表结构。
需要确定每个表的字段、数据类型、长度以及约束条件等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库
逻辑
表空间 段
数据文件
物理
区
Oracle块
O/S块 1
第1页/共48页
表空间(tablespace)
❖表空间用于组织数据库数据。 ❖从逻辑上讲,数据库是由一个或多
个表空间组成的。 ❖一个表空间只能属于一个数据库。 ❖从物理上讲表空间是由一个或多个
数据文件组成的。
2
第2页/共48页
上存放在表空间中,而物理上则是存 放在数据文件中的。
4
第4页/共48页
数据文件
❖从性能角度考虑,应将数据文件和重 做日志文件分布到不同磁盘上。
❖从数据安全角度上考虑也应将数据文 件和重做日志文件尽可能分布到不同 的磁盘上 。
5
第5页/共48页
段(segment)
❖用于存储特定逻辑结构的所有数据。当建立数据对 象(表、索引等)时, Oracle会自动给这些数据对 象分配相应的存储空间,以存放它们的 数据信息, 这些为数据对象分配的存储空间称为段。
14
第14页/共48页
管理实例和数据库
➢ db_block_size 指定标准数据块尺寸,数据库建立之 后该参数不能修改。
➢ db_cache_size 数据高速缓存所对应的尺寸。 ➢ log_buffer 重做日志缓冲区的尺寸。 ➢ shared_pool_size 共享池的尺寸。 ➢ background_dump_dest 指定后台进程跟踪文件所在
❖ 建立参数文件
1)复制参数文件 将文件 d:\oracle\admin\oracle\pfile\init.ora复制
到 d:\oracle\ora92\database\inittest.ora 2)编辑初始化参数
db_name = test instance_name = test control_files = e:\test\test01.ctl db_block_size = 81928源自第8页/共48页数据块
❖数据块也称为Oracle块,是Oracle在数据文 件上执行I/O操作的最小单位。 ❖数据块尺寸是由初始化参数db_block_size 确定的,取值一般为2K、4K、8K、16K、 32K、64K等。 ❖数据块的大小应是OS块的整数倍。
9
第9页/共48页
表空间
❖SYSTEM表空间 ✓自动建立。 ✓存放数据字典。 ✓包含SYSTEM回滚段。
目录。 ➢ user_dump_dest 指定用户进程跟踪文件所在目录。 ➢ remote_login_password_file 指定特权用户的认证方
式。 ➢ Undo_management 指定UNDO数据的方式。
15
第15页/共48页
管理实例和数据库
❖建立实例服务
ORADIM -NEW -SID test -INTPWD test
-STARTMODE auto -pfile c:\oracle\ora92\database\inittest.ora
➢ 连接到实例
1)在DOS提示符下设置要连接的实例: set oracle_sid=test
2)在DOS提示符下运行: sqlplus /nolog 3)以特权用户连接:connect sys/test as sysdba
修改或增加初始化参数的原则如下: 1)在修改或增加初始化参数之前,首先检 查该初始化参数是否存在,若存在则直接修改; 若不存在,那么在文件尾部增加一行。
11
第11页/共48页
管理实例和数据库
2)每行只能设置一个参数; 3)字符型参数的值可以用双引号引住,但数 字型参数则不能用引号引住。
4)如果一个初始化参数有多个值,则用逗号 隔开。
表空间的作用
❖通过表空间,可以近制数据库所占 用的磁盘空间。
❖通过表空间,管理员可以将不同类 型的数据分布到不同磁盘上,降低 I/O冲突,从而提高I/O性能 。
3
第3页/共48页
数据文件(data file)
❖是表空间的物理组成部分,表空间与 数据文件是一对多的关系。
❖一个数据文件只能属于一个表空间 。 ❖数据对象(表、索引等)的数据逻辑
❖在一个表空间上可以包含一个或多个段。 ❖一个段只能存放在一个表空间上,并且段是由一个
或多个区组成的。
6
第6页/共48页
常用段的类型
❖数据段:用于存放表的数据,表与数据段是一 一 对应的关系,并且段名与表名完全相同。
❖索引段:用于存放索引的数据,索引段与索引也 是一 一对应的关系,并且名称相同。
❖回滚段:用于存放事务所修改数据的旧值。
7
第7页/共48页
区(extent)
❖是Oracle空间分配的逻辑单位,由相邻的数 据块组成,一个区只能唯一地属于一个数据 文件。 ❖当建立数据对象时,Oracle会为数据对象以 区为单位分配存储空间。 ❖当建立段时,Oracle至少要为其分配一个区, 当段不足以容纳数据对象时,该段会自动扩 展一个区。
13
第13页/共48页
管理实例和数据库
db_cache_size = 25M shared_pool_size = 25165824 log_buffer = 32768 background_dump_dest = e:\test\bdump user_dump_dest = e:\test\udump remote_login_passwordfile = EXCLUDSIVE undo_management = AUTO undo_tablespace = UNDOTBS
5)屏蔽参数可以使用“#”。 在构造Oracle Server之前,首先需要完成的
任务就是建立参数文件。Oracle建议将参数文 件放到Oracle主路径的database子目录下,并 将参数文件名称设置为: init<SID>.ora 其中 SID为实例标识符。
12
第12页/共48页
管理实例和数据库
❖非SYSTEM表空间 ✓分离回滚段、临时段、数据段和索引段。 ✓易于备份和恢复。 ✓易于空间管理。
10
第10页/共48页
管理实例和数据库
❖ 参数文件
Oracle 9i提供了200多个初始化参数,且每个 初始化参数都有默认值。在使用Oracle Server 时可以根据特定需求设置相应的值,而大多数 都可以保留默认设置。