精华内容
下载资源
问答
  • SQL Server数据库中数据的存储分配的基本单位是:页(Page),每一页大小为8KB(8*1024字节)的连续磁盘空间,其中用8060字节存放数据,132字节存放系统信息,页是存储数据的最小空间分配单位,页的大小决定了基本表中...

    1. 讨论数据库中数据的存储分配单位

    讨论SQL Server数据库中数据的存储分配的基本单位

    SQL Server数据库中数据的存储分配的基本单位是:页(Page),每一页大小为8KB(8*1024字节)的连续磁盘空间,其中用8060字节存放数据,132字节存放系统信息,页是存储数据的最小空间分配单位,页的大小决定了基本表中一行数据的最大大小。SQL Server中不允许基本表中的一行数据存储在不同的页上,即行不能跨页存储。

    2. 计算存放基本表需要的存储空间

    计算存放下列表需要多少存储空间:设一个基本表有10000行,每行占用5000字节,则存放该表大约需要多少MB空间?

    依题意每行5000字节,每个数据页就只能存储1行,因为行不能跨页。所以10000行就会占用10000个数据页,每个页面8K,那总的存储空间就是10000 * 8K B=80MB .

    3. 讨论字符数据类型

    讨论Char(10) ,nchar(10),varchar(10) 各存放多少个字符?占用多少字节空间。
    • Char(10) , 普通编码字符类型,最多存放10个字符,但是固定占10个字节。 当实际存储字符小于10个时系统自动在后边补空格。
    • nchar(10), 统一编码字符,最多存放10个字符,但是固定占20个字节。当实际存储字符小于10个时系统自动在后边补空格。
    • varchar(10),普通编码字符,可变长度的字符串类型,实际存储字符数+2字节额外开销,最多存储8个字符。最多占10个字节。
    • nvarchar(10),统一编码字符,可变长度的字符串类型,实际存储字符数+2字节额外开销,最多存储9个字符。最多占20个字节。
    展开全文
  • 索引是存放在模式(schema)中的一个数据库对象,索引作用就是提高对表检索查询速度, 索引是通过快速访问方法来进行快速定位数据,从而减少了对磁盘读写操作。 索引是数据库的一个对象,它不能独立存在,...
  • 数据库介绍 基本介绍 数据库(database)简称DB,实际上就是一个文件集合,是一个存储数据的仓库,本质就是...关系数据库:可以保存现实生活的各种关系数据,数据库在存储数据以(表)为单位;主流关系数据库:M

    数据库介绍

    • 基本介绍
      • 数据库(database)简称DB,实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查等操作。
    • 为什么要学习数据库
      • 本地文件不利于存放海量数据,也不利于对程序的查询与修改。
    • 数据库存储数据的特点
      • 持久化存储
      • 读写速度极高
      • 保证数据的有效性
      • 对程序支持非常好,容易扩展
    • 数据库分类
      • 关系型数据库:可以保存现实生活中的各种关系数据,数据库在存储数据以(表)为单位;主流关系型数据库:MySQL、Oracle、SQLServer等。
      • 非关系型数据库:通常用来解决某些特定的需求,比如:高访问、高并发。主流非关系型数据库:Redis、Mongodb、memacache。
    • 数据仓库
      • 数据仓库字面意思就是存储数据的一个仓库
    • 数据库与数据仓库的区别
      • 数据库是为了操作数据
      • 数据仓库是为了管理分析数据
    展开全文
  • 数据库介绍

    2014-02-24 17:23:44
    例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工...
  • 1、数据流物理设计的工作过程在数据库的物理结构数据的基本单位是数据记录,记录以文件的形式进行存储,,一条存储记录对应关系模式的一条逻辑记录,并且文件当中还需要记录存储记录的结构信息,比如字段长度...
    5efaed6ee031fa1d0477b7a582b0f357.png

    1、数据流物理设计的工作过程

    在数据库的物理结构中,数据的基本单位是数据记录,记录以文件的形式进行存储,,一条存储记录对应关系模式中的一条逻辑记录,

    并且文件当中还需要记录存储记录的结构信息,比如字段长度、数据类型、字段描述等信息。

    工作过程:逻辑设计阶段产生(逻辑模型:模式、子模式)→确定数据库的物理模式→评估数据库的物理模式产生(物理模型:存储记录格式、记录存放位置、存取方法)→数据库实施阶段

    2、数据库物理设计工作步骤

    数据库物理设计主要步骤有:确定数据分布、存储结构、访问方式。

    2.1 确定数据分布

    从企业计算机应用环境出发,确定数据是采用集中管理还是分布式管理,目前一般采用分布式管理。数据分布需要考虑以下几个方面:

    • 根据不同应用分布数据:一般情况下企业的部门不同所使用的数据也是不同,将与部门应用相关的数据存储在相应的场地,使得不同场地上处理不同的业务,针对应用多个场地的业务可以通过网络进行数据管理。
    • 根据处理要求确定数据的分布:针对不同的处理要求,也会有不同的使用频度和响应时间要求。频度高、响应时间短的数据应该存储在高速的设备上。
    • 针对数据的分布存储必然会导致数据的逻辑结构的变化,要对关系模式做新的调整。

    2.2 确定数据的存储结构

    存储结构具体是指数据文件中记录之间的物理结构。在文件中,数据是以记录为单位进行存储的,可以采用顺序存储、哈希存储、堆存储、B+树等方式。

    一般为了提高数据的访问速度,会采用索引技术。这个在物理设计阶段,要根据数据处理和修改要求,确定数据库文件的索引字段和索引类型。

    2.3 确定数据的访问方式

    数据的访问方式一般都是由存储结构决定的。数据库物理结构组成有:存储记录格式、记录在物理设备上的安排、访问路径等。

    1、存储结构的设计

    存储记录组成:记录、数据项长度、长度和数据项之间的联系、逻辑记录到存储记录的映射。一般在设计记录的存储结构时,并不改变数据库的逻辑结构,但可以在物理上对ijl进行封装。当多个用户同时访问数据项时,会由于访问冲突而等待可以将这些数据分布在不同的磁盘组上,当用户同时访问时,

    系统可以并行的执行IO,减少网盘冲突,从而提高数据库的性能。

    2、存储记录的布局

    存储记录的布局,就是确定数据的存放位置。存储记录作为一个整体,如何分布在物理区域上,是数据库物理结构设计的重要环节。聚簇功能可以大大提高按聚簇码进行查询的效率。

    建立聚簇索引的原则:

    • 聚簇码的值相对稳定、没有或很少需要进行修改。
    • 表主要用户查询,并且通过聚簇码进行访问或连接是该表的主要应用。
    • 对应每个聚簇码值的平均元组数既不太多,也不太少。

    3、存取方法的设计

    存取方法是为存储在物理设备上的数据提供存储和检索能力。存取方法包括存储结构、检索机制。存储结构限定了可能访问的路径和存储记录;检索机制定义每个应用的访问路径。

    展开全文
  • (4)持续性(Durability ):指一个事务一旦提交,它对数据库中数据的改变就应该是永久的。接下来的其他操作或故障不应该对其执行结果有任何影响。 39、起始结束标志:通常是以BEGIN TRANSACTION开始,以COMMIT或...
  • 概念 在 InnoDB 存储引擎,所有的数据都被...页是mysql磁盘和内存交换的基本单位,也是mysql管理存储空间的基本单位。 同一个数据库实例的所有表空间都有相同的页大小;默认情况下,表空间的页大小都为 16K..

    参考:https://www.phpmianshi.com/?id=136

    概念

    在 InnoDB 存储引擎中,所有的数据都被逻辑地存放在表空间中,表空间(tablespace)是存储引擎中最高的存储逻辑单位,在表空间的下面又包括段(segment)、区(extent)、页(page),他们之间的关系如下:

     

     

    数据页

    页是mysql中磁盘和内存交换的基本单位,也是mysql管理存储空间的基本单位。

    同一个数据库实例的所有表空间都有相同的页大小;默认情况下,表空间中的页大小都为 16KB,当然也可以通过改变 innodb_page_size 选项对默认大小进行修改,需要注意的是不同的页大小最终也会导致区大小的不同。

    一次最少从磁盘读取16KB内容到内存中,一次最少把内存中16KB内容刷新到磁盘中,当然了单页读取代价也是蛮高的,一般都会进行预读

     

     

     

     

    名称 中文名 占用空间大小 简单描述
    File Header 文件头部 38字节 页的一些通用信息
    Page Header 页面头部 56字节 数据页专有的一些信息
    Infimum + Supremum 最小记录和最大记录 26字节 两个虚拟的行记录
    User Records 用户记录 不确定 实际存储的行记录内容
    Free Space 空闲空间 不确定 页中尚未使用的空间
    Page Directory 页面目录 不确定 页中的某些记录的相对位置
    File Trailer 文件尾部 8字节 校验页是否完整

     

     

    Infimum + Supremum

     

    • 这个值位于整个页面的第三部分

    • 分别是最小记录和最大记录,属于MySQL为每个页添加的虚拟记录

    • 由五个字节的记录头 和 八个字节的 值(分别是单词InfimumSupremum)组成

    • 最小记录的记录头中heap_no为0

    • 最大记录的记录头中heap_no为1

    • 也就是说正式记录中的heap_no属性从2开始

    • 最小记录的record_type 是2

    • 最大记录的record_type 是3

    • 最小记录是页中单链表的头结点

    • 最大记录是页中单链表的尾结点

    Page Directory

    • 这个页目录里面存的是一个一个的槽(slot)

    • 每个槽指向组内最大记录的地址偏移量(我理解为页内偏移量)

    • 这个数据结构是数组,按主键值从小到大排列

    • 这种结构注定了查询最快的方式是二分法,时间复杂度O(lgN)

    • 页分裂(前面说过) 时会增加一个槽

    User RecordsFree Space

    • 完全空闲的页是没有 User Records部分的

    • 插入数据时,从Free Space分配空间给User Records,直到Free Space没有空间或空间不够分配新的记录,这时需要申请新的页

    Page Header

    名称 占用空间大小 描述
    PAGE_N_DIR_SLOTS 2字节 在页目录中的槽数量
    PAGE_HEAP_TOP 2字节 还未使用的空间最小地址,也就是说从该地址之后就是Free Space
    PAGE_N_HEAP 2字节 本页中的记录的数量(包括最小和最大记录以及标记为删除的记录)
    PAGE_FREE 2字节 第一个已经标记为删除的记录地址(各个已删除的记录通过next_record也会组成一个单链表,这个单链表中的记录可以被重新利用)
    PAGE_GARBAGE 2字节 已删除记录占用的字节数
    PAGE_LAST_INSERT 2字节 最后插入记录的位置
    PAGE_DIRECTION 2字节 记录插入的方向
    PAGE_N_DIRECTION 2字节 一个方向连续插入的记录数量
    PAGE_N_RECS 2字节 该页中记录的数量(不包括最小和最大记录以及被标记为删除的记录)
    PAGE_MAX_TRX_ID 8字节 修改当前页的最大事务ID,该值仅在二级索引中定义
    PAGE_LEVEL 2字节 当前页在B+树中所处的层级
    PAGE_INDEX_ID 8字节 索引ID,表示当前页属于哪个索引
    PAGE_BTR_SEG_LEAF 10字节 B+树叶子段的头部信息,仅在B+树的Root页定义
    PAGE_BTR_SEG_TOP 10字节 B+树非叶子段的头部信息,仅在B+树的Root页定义

    1.PAGE_GARBAGE

    • 在页面空间不够时,会尝试将所需空间与这个值比较,如果够,那么将记录移到临时表中,再重新插回来(记录逐条新增是不会产生碎片空间的),但很明显,这很耗性能

    1. PAGE_BTR_SEG_LEAFPAGE_BTR_SEG_TOP

    • 后面会说到段的概念,一个索引会有两个段,一个叶子节点段,一个非叶子节点段,这两个属性分别代表一个 Segment Header,代表了哪个表空间哪个页面的哪个INODE Entry (表空间号 + 页面号 + 偏移量值)

    File Header

    名称 占用空间大小 描述
    FIL_PAGE_SPACE_OR_CHKSUM 4字节 页的校验和(checksum值)
    FIL_PAGE_OFFSET 4字节 页号
    FIL_PAGE_PREV 4字节 上一个页的页号
    FIL_PAGE_NEXT 4字节 下一个页的页号
    FIL_PAGE_LSN 8字节 页面被最后修改时对应的日志序列位置(英文名是:Log Sequence Number)
    FIL_PAGE_TYPE 2字节 该页的类型
    FIL_PAGE_FILE_FLUSH_LSN 8字节 仅在系统表空间的一个页中定义,代表文件至少被刷新到了对应的LSN值
    FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID 4字节 页属于哪个表空间

    这个属性里面的值就说三个:

    • FIL_PAGE_OFFSET

    1. 每个表空间的页号唯一,四个字节足够用了

    • FIL_PAGE_PREVFIL_PAGE_NEXT

    1. 上一页和下一页,诶哟,这不是双向链表啊,那所有的页加起来组成了一个双向链表哇,好玩吧~

    • FIL_PAGE_TYPE

    类型名称 十六进制 描述
    FIL_PAGE_TYPE_ALLOCATED 0x0000 最新分配,还没使用
    FIL_PAGE_UNDO_LOG 0x0002 Undo日志页
    FIL_PAGE_INODE 0x0003 段信息节点
    FIL_PAGE_IBUF_FREE_LIST 0x0004 Insert Buffer空闲列表
    FIL_PAGE_IBUF_BITMAP 0x0005 Insert Buffer位图
    FIL_PAGE_TYPE_SYS 0x0006 系统页
    FIL_PAGE_TYPE_TRX_SYS 0x0007 事务系统数据
    FIL_PAGE_TYPE_FSP_HDR 0x0008 表空间头部信息
    FIL_PAGE_TYPE_XDES 0x0009 扩展描述页
    FIL_PAGE_TYPE_BLOB 0x000A BLOB页
    FIL_PAGE_INDEX 0x45BF 索引页,也就是我们所说的数据页

    现在只需要看这最后一个索引页,又称数据页(跟InnoDB的特性有关)

    属性介绍了一堆,还是不知道怎么查,举个栗子

    • 假设一条查询语句定位到了这个页面

    • 先将条件中的列(加深为col)与值(假设为x)拎出来,二分法定位在哪个组。

    1. 假设10个槽,(0 + 9)/2 = 4, 将第四个槽的条件列的值拿出来跟x比较,如果x大,那就从5~9的槽中继续二分找;如果x小, 那就从0~4的槽中继续二分;

    2. 直到前后两个槽相差为1,那记录就在那个大的槽里面,又每个槽其实存的是组内最大记录,那前一个槽对应记录的下一个节点就是目标槽对应组中的最小值,顺着单链表往后一个一个比就完事了,每组最多八条记录,这速度还是很快的。

    展开全文
  • 数据库分类关系数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现面向对象的数据库:保存的是对象本身其它数据库数据库管理系统创建一个个的保存数据的单位数据是保存在数据库的表的存储...
  • 数据库:就是数据仓库,存储数据的地方,特指计算机设备的硬盘,以二进制压缩文本的形式存放 该文件不能直接操作,必须由各数据库公司提供的工具方可操作,该文件的格式是每个数据库公司内部 定义的,不是统一规则...
  •  数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。  (4)数据实现集中控制。  文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在...
  • oracle数据库经典题目

    2011-02-17 15:05:20
    18. 表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个SYSTEM系统表空间。 19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。 20.序列是一种...
  • 数据字典是什么

    2011-10-02 21:42:00
      数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其内容作...数据字典(Data Dictionary)中存放着系统中所有数据的定义,即对所有数据库结构的描述。数据字典提供了对数据库数据描述的集中管理手段...
  • MySQL作为一个关系数据库,最核心也是最基本的一个功能就是存储数据,而数据的存储最终都是存储在磁盘文件上的,不过MySQL并不会像Java那样把一个对象序列化之后直接存储到磁盘上去,因为这样的话后续就不太方便...
  • 数据库课程设计(基于B/S)

    热门讨论 2008-12-28 15:28:06
    订单表(Order):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编号、用户编号(用户表的主码)、报刊代号(报刊信息表的主码)、订阅份数、订阅月数等。 根据上面的设计规划出来的实体有部门实体、...
  • 数据字典是什么?

    2005-03-18 20:19:00
    数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其...数据字典(Data Dictionary)中存放着系统中所有数据的定义,即对所有数据库结构的描述。数据字典提供了对数据库数据描述的集中管理手段。数据字典经...
  • 数据仓库实际上是一个“以大型数据管理信息系统为基础的、附加在这个数据库系统之上的、存储了从企业所有业务数据库中获取的综合数据的、并能利用这些综合数据为用户提供经过处理后的有用信息的应用系统”。...
  • 1)创建上面列出的还未创建的数据库表,当设定表各列的类型和长度时,需要考虑给定的用于填充数据的INSERT语句; 2)将表TITLE4的ISBN和Name字段设置成备用码,而且它们不能取空值; 3)在所有表添加指定的...
  • 阶梯管理技术:统计查询“树型结构”数据时,可按节点之间的关系,统计包含子类的全部详细信息,保证数据的准确完整。 自动编码技术:用户设定编码规则后,系统自动模拟继续编号。 报表管理技术:可以从报表管理器,...
  • 数据元素:是数据的基本单位,在计算机程序通常作为一个整体进行处理;一个数据元素可由若干个数据项组成。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。 数据结构上的基本操作: ◆插入操作 ◆删除...
  • 一 ORACLE概述1 数据:在数据库领域看来,数据是存储的基本单位,包含文本,图片,视频,音频2 数据库:就是数据仓库,存储数据的地方,特指计算机设备的硬盘,以二进制压缩文本的形式存放该文件不能直接操作,...
  • oracle面试题总结

    千次阅读 2013-06-08 09:12:47
    1、描述tablespace和datafile的关系 表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放数据文件;从逻辑上讲,数据库则是存放在表空间...BLOCK是Oracle存储基本单位,由DB_BLOCK_SIZE制定,通常为8
  • Oracle常用知识点(1)

    2016-11-19 09:54:49
    数据库:就是数据仓库,存储数据的地方,特指计算机设备的硬盘,以二进制压缩文本的形式存放该文件不能直接操作,必须由各数据库公司提供的工具方可操作,该文件的格式是每个数据库公司内部定义的,不是统一规则 ...
  • Sqlite 一款轻型的数据库,是遵守ACID的关系数据库管理系统,它包含在一个相对小C库 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力国际中立性技术标准机构。主要工作是发展 Web 规范,...
  • (39) 在关系数据库中,用来表示实体之间联系是(D) A. 树结构 B. 网结构 C. 线性表 D. 二维表 (40) 将E-R图转换到关系模式时,实体与联系都可以表示成(B) A. 属性 B. 关系 C. 键 D. 域 (41) 在下列选项中,哪个不是...
  • 由于数据元素在计算机存储空间的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构,不仅要存放各数据元素的信息,还需要存放各...
  • 目前大部分(70%)数据都是基于关系数据库进行存储关系数据库在操作上,需要实时高速的数据读取和存储,一般数据库都采用“块”(Block)方式进行数据传输,这样NAS就无法进行数据应用主流:数据库...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

关系数据库中存放数据的基本单位