KingbaseES开发培训之1_数据库系统概.ppt_第1页
KingbaseES开发培训之1_数据库系统概.ppt_第2页
KingbaseES开发培训之1_数据库系统概.ppt_第3页
KingbaseES开发培训之1_数据库系统概.ppt_第4页
KingbaseES开发培训之1_数据库系统概.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

* kingbasees开发培训之 数据库系统概念 北京人大金仓信息技术股份有限公司 北京人大金仓信息技术股份有限公司 kingbasees数据类型 主要内容 sql、jsql及pl/sql 常用数据字典简介 关系数据库系统(rdbms) 伪列 sql语句基础 使用jsql工作 北京人大金仓信息技术股份有限公司 关系数据库系统(rdbms) 1.1理解关系数据库系统(rdbms) 关系型数据是以关系数学模型来表示的数据。关系数学模型中以二维表的 形式来描述数据。关系型数据库(rdbms)是存储在计算机上的、可共 享的、有组织的关系型数据的集合。 北京人大金仓信息技术股份有限公司 关系数据库系统(rdbms) 1.1.1关系模型 关系是一些带有特殊属性的表,所以有: 数据的基础项是关系 在这些表上的操作只产生关系,一个关系表必须符合某些特定条件, 才能成为关系模型的一部分 储存在单元中的数据必须是原子的。 每个单元只能存储一条数据,叫 信息原则 (information principle)。如果存储多条则违反信息原则。特 殊情况下可能需要违反信息原则 储存在列下的数据必须具有相同的数据类型。 每一行是唯一的(没有完全相同的行) 列没有顺序 行没有顺序 列有一个唯一性的名称。 北京人大金仓信息技术股份有限公司 关系数据库系统(rdbms) 关系模型的另一个方面是完整性原则。它包括实体完整性原则(entity integrity rule)和引用完整性原则(referential integrity rule)如: 主键( primary key )是能唯一标识行的一列或一组列的集合。 由多 个列构成的主键称为连接键(concatenated key) 、组合键( compound key),或称作为复合键(composity key )。 外部键(foreign key )是一个表中的一列或一组列,它们在其它 表中作为主键而存在。一个表中的外部键被认为是对另外一个表中主 键的引用。 实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引 用完整性原则简洁地表明一个外键必须为空或者它所引用的主键当前 存在值相一致。 北京人大金仓信息技术股份有限公司 关系数据库系统(rdbms) 1.1.2 codd十二法则 kingbasees数据库系统是一个完美的完全符合数据库技术的关系数据库 系统。要想你的应用设计按照数据库原理来进行,最重要的就是理解 kingbasees的结构、语句和命令。codd提出的十二条法则在 oracle 系 统中都可以找到: 1) 信息法则 2) 授权存储法则,每一个数据项都通过“表名+行主键+列名”的组合形 成访问 3) 必须以一致的方法使用空值 4) 一个活跃的、在线数据字典应作为关系型表被储存 5) 必须提供数据存取语言进行存取访问 6) 所有能被更新的视图应当是可被更新的 7) 必须有集合级的插入、更新和删除 8) 物理数据的独立性。即应用不依赖物理结构 北京人大金仓信息技术股份有限公司 关系数据库系统(rdbms) 9) 逻辑数据的独立性。如果一个表被分成两个部分,则应用视图连接在 一起,以便不会对应用产生影响 10) 完整性的独立性。完整性规则应该储存在数据字典中 11) 分布独立性。一个数据库即使被分布,也应该能工作 12) 非破坏性原则。如果允许低级存取,一定不能绕过安全性和完整性原 则 北京人大金仓信息技术股份有限公司 关系数据库系统(rdbms) rdbms 由两部分组成,即: 数据库系统内核(软件) 数据字典(内核用于管理数据库系统的数据结构) 1.2关系数据库系统(rdbms)的组成 1.2.1rdbms内核 rdbms 就是用来控制数据访问的操作系统。它的任务是按照一定的规 则存储数据、检索数据及保护数据。 1.2.2数据字典 数据字典存放数据库中所有对象(如表,索引,视图等)所需的信息。 kingbasees的数据字典是存放数据库系统信息的一组表,从数据字典中的 信息可以确认数据库中数据对象的基本信息及存放位置。 北京人大金仓信息技术股份有限公司 kingbasees的体系结构 kingbasees采用的是客户端/服务器的计算模式,客户端和服务器可 以运行在不同的主机上,它们之间通过tcp/ip协议进行通讯。 kingbasees数据库服务器启动后,系统中会存在如下两个进程: kingbasees listener service进程:kingbasees监听服务。 kingbasees数据库服务进程:我们称该进程为一个“kingbasees 数据库实例”。 北京人大金仓信息技术股份有限公司 kingbasees 服务器 数据库集群 实例(instance) 系统全局区(sga) 重做日志 缓冲区 数据 缓冲区 后台写 统计 清理 others 用户进程 服务线程 控制文件数据 文件 重做日 志文件 联机日 志文件 参数文件 控制 结构 北京人大金仓信息技术股份有限公司 kingbasees 服务器 kingbasees 服务器由实例和数据库集群组成 一个kingbasees实例对应于一个服务器进程,操纵自己 的数据目录。 北京人大金仓信息技术股份有限公司 kingbasees的内存结构 系统全局区 数据缓冲区(shared_buffer) 淘汰算法 日志缓冲区(wal_buffer) 该缓冲区是一个顺序使用的、循环的结构,当写满时,再从头 部开始。 其他控制结构,例如: 线程控制块 锁表等 北京人大金仓信息技术股份有限公司 kingbasees数据库服务进程 数据库服务进程采用多线程架构,该进程包含多个线程。这些线程按 照功能的不同可以分为后台线程和服务线程两类: 后台线程:kingbasees数据库服务在启动或运行过程中自动启 动一些线程,称之为后台线程。 服务线程:kingbasees用服务线程来处理连接到数据库服务的 客户端请求。对于每个客户端的连接,kingbasees会为其创建 一个新的服务线程。 北京人大金仓信息技术股份有限公司 后台线程 系统写线程:负责将数据库缓冲区中被修改过的页面(脏页)写出到 数据文件中。 数据库统计线程:负责收集、统计数据库中各种操作(元组、页面等 )的信息。 空间清理线程:负责检查、清理系统运行过程产生的垃圾空间。 归档线程:负责将日志文件归档到指定的位置。 输出信息写线程:负责将数据库服务中的log及错误信息输出到指定 的文件中。 两个系统内部线程:这两个线程总是随数据库服务一起启动。 北京人大金仓信息技术股份有限公司 服务线程 由kingbasees自身创建,用于处理用户进程提出的请求 服务进程主要完成以下任务: 解析并执行用户所提交的sql语句 在数据库缓存中查找用户所访问的数据,如果没有,从数据文件 中读取 将数据返回给用户进程 北京人大金仓信息技术股份有限公司 kingbasees的逻辑结构 database cluster database schema database object table index sequence view 北京人大金仓信息技术股份有限公司 系统初始化 创建全局数据库(global) 创建临时数据库(tempdb) 创建模板数据库(template0和template1) 创建样例数据库(sample) 创建用户数据库(template2) 北京人大金仓信息技术股份有限公司 全局数据库 全局数据库中存储与数据库集群相关的信息,例如集群中的数据库、 用户、 角色等。 用户不能连接全局数据库。 全局数据库中的数据操作由dbms自动完成。 北京人大金仓信息技术股份有限公司 临时数据库 临时数据库用于存储dbms在运行过程中产生的临时信息,例如排序 、创建hash表等。 用户不能连接临时数据库,临时数据库中的数据操作由dbms自动完 成。 北京人大金仓信息技术股份有限公司 模板数据库 模板数据库中存储了每个数据库的系统表信息,它是创建一个新数据 库的样板。 北京人大金仓信息技术股份有限公司 kingbasees的存储结构 存储系统的管理方式 sms vs dms sms(system management system) 关系:文件(1:n) dms(database management system) 关系:文件(m:n) 北京人大金仓信息技术股份有限公司 kingbasees的逻辑存储结构 数据库集群 数据库 表空间 区 页 北京人大金仓信息技术股份有限公司 kingbasees的物理存储结构 控制文件 数据文件 日志文件 临时文件 北京人大金仓信息技术股份有限公司 存储系统各个术语之间的关系 一个表空间由多个数据文件组成 kingbasees的数据库对象(表、索引、序列)逻辑上存 储在数据库的表空间中,而物理上存储在表空间所对应的 数据文件中 日志信息存储在日志文件中 北京人大金仓信息技术股份有限公司 处理sql语句 与数据库实例建立连接 根据不同的sql语句,使用不同的组件: select语句需要把结果集返回给用户进程 dml语句需要日志系统 commit语句必须保证一个事务可以恢复 有些数据库后台进程并不参与sql处理,只是为了提高数据库性能 北京人大金仓信息技术股份有限公司 连接到数据库 连接是在用户进程和kingbasees服务器之间建立一个通 信通道,称为一个会话(session) 北京人大金仓信息技术股份有限公司 处理一个查询 语法分析 语义检查 查询重写 查询优化 执行查询 返回结果给客户端 北京人大金仓信息技术股份有限公司 sga redo log buffer data buffer cache database 2 2 1 3 4 update emp . 用户进程 服务器线程 control files data files redo log files 处理dml语句 北京人大金仓信息技术股份有限公司 关键步骤 (1)服务器接受到sql语句后,处理此语句,看需要的数 据是否在缓冲区,如果在直接处理(3),否则执行(2 )。 (2)从数据库文件中将数据调入数据缓冲区 (3)在重做日志中生成该事务的一个拷贝,来记录数据的 修改 (4)完成缓冲区中数据的修改 北京人大金仓信息技术股份有限公司 数据库 实例 sga redo log buffer data buffer cache shared pool1 2 3 4 用户进程 服务线程 control files data files redo log files commit处理 北京人大金仓信息技术股份有限公司 kingbasees数据类型 主要内容 sql、jsql及pl/sql 常用数据字典简介 关系数据库系统(rdbms) 伪列 sql语句基础 使用jsql工作 北京人大金仓信息技术股份有限公司 sql、jsql及pl/sql rdbms 由两部分组成,即: 数据库系统内核(软件) 数据字典(内核用于管理数据库系统的数据结构) 2.1sql、jsql及pl/sql 2.1.1sql sql 是标准结构查询语言。 2.1.2jsql 在所有kingbasees版本里,系统提供了一个叫查询分析器(jsql)的图 形 sql 工作环境,它完全是在图形方式进行。 北京人大金仓信息技术股份有限公司 sql、jsql及pl/sql 2.1.3pl/sql pl/sql 是kingbasees的一个组成部分,pl是“过程化语言( procedure language )”的缩写。pl/sql 语言是在 sql 语言中结合了 结构化过程语言成分的准第四代语言。 使用 pl/sql 的目的: 由于大多数 pl/sql 是在服务端来运行,这样可减少由客户端运行程序 时所需的网络数据流量。 可以使用 pl/sql 的地方: pl/sql 可以单独进行程序的编写,完成一般的处理功能 在高级语言中可嵌入 pl/sql块 在 4gl 中可以嵌入 pl/sql块 在 pl/sql 程序中可以嵌入 html 和xml 北京人大金仓信息技术股份有限公司 sql、jsql及pl/sql 2.2启动jsql 启动kingbasees 查询分析器有三种方法: 通过开始菜单,选择kingbasees安装程序组中的查询分析器 。在这种方式下,用户需要输入用户名和密码。 通过jmanager工具启动。如果jmanager中的节点在某个具体的数 据库或其子节点上,则这种方式下启动kingbasees 查询分析器的用 户就是jmanager用户;否则,需要用户登录。 在命令行输入如下命令:“java -jar jsql.jar”即可启动,但注意 jsql要求jdk1.6.0版本。 北京人大金仓信息技术股份有限公司 kingbasees数据类型 主要内容 sql、jsql及pl/sql 常用数据字典简介 关系数据库系统(rdbms) 伪列 sql语句基础 使用jsql工作 北京人大金仓信息技术股份有限公司 常用数据字典简介 3.1kingbasees数据字典 kingbasees提供许多内部数据字典, 用以管理系统的各种信息和参数 (即数据库对象) ,下面列出几个常用的数据字典供初学者参考,其 它方面的数据字典将在 dba 管理中介绍。 数据字典的命名说明: sys 为前缀-记录系统对象信息 user 为前缀-记录用户的所有对象信息 all 为前缀-记录包括 user 记录和授权给 public 或该用户的所有 对象的信息。 dba 为前缀-记录关于数据库对象(非用户对象)的信息。 北京人大金仓信息技术股份有限公司 常用数据字典简介 3.2常用数据字典 sys_aggregate存储与聚集函数有关的信息 sys_am存储有关索引访问方法的信息 sys_amop存储有关和索引访问方法操作符类关联的信息 sys_class记载表和几乎所有有字段或者类似表的东西 sys_listener记录 listen 和 notify 命令 sys_type存储有关数据类型的信息 sys_partition存储各个分区信息的系统表 all_objects当前用户下可以查看的所有对象 all_tables当前用户下可以查看的所有表 dba_dblinks数据库中所有数据库连接的信息 dba_users数据库中所有用户的信息 sys_auto_triggers数据库中自动创建的触发器 sys_depends数据库对象间的依赖关系 sys_backupinfo用户备份操作的信息 sys_indexes数据库中每个索引的信息 sys_parttables显示分区表信息的视图 北京人大金仓信息技术股份有限公司 kingbasees数据类型 主要内容 sql、jsql及pl/sql 常用数据字典简介 关系数据库系统(rdbms) 伪列 sql语句基础 使用jsql工作 北京人大金仓信息技术股份有限公司 kingbasees数据类型 4.1kingbasees数据类型 kingbasees所操纵的任何值都有自己的数据类型,而每个数据类型都 会定义与该值所关联一个操作集合。通过不同的值和操作中间的内在 关系能够保证对值的操作的合法性。当创建表、存储过程等操作时必 须为表列或过程参数指定系统支持的数据类型,从而确定它们可以使 用的值域。例如如果列类型为date,则插入100或1000等将被拒绝 。 北京人大金仓信息技术股份有限公司 kingbasees数据类型 4.2数据类型一览表 类 型 名说 明 字符串类型 character(n), char(n)定长字符串,n 的最大值为8000 character varying(n), char varying(n), varchar(n), varchar2(n) 变长字符串,n 的最大值为8000 clob字符串大对象,最大长度为2g-1个字节 text字符串,长度不限,建议不大于64k xml针对 xml 数据的特殊数据类型,长度无限制 数值类型 numeric(p,s)可选精度的准确数字 number(p,s)可选精度的准确数字,同numeric decimal(p,s), dec(p,s)可选精度的准确数字,同numeric bigint8字节有符号整数 integer, int 4字节有符号整数 smallint/int22字节位有符号整数 tinyint1字节有符号整数 北京人大金仓信息技术股份有限公司 kingbasees数据类型 类型名说明 float(n)可选精度的浮点数 real单精度的浮点数 double precision,double 双精度浮点数字 日期时间类型 date日历日期,包括年、月、日 time(p) with time zone 一天里的时间,包括时区 time without time zone一天里的时间,不包括时区 timestamp(p)with time zone包括日期和时间,带时区的日期和时间 timestamp(p)without time zone包括日期和时间,不带时区的日期和时间 时间间隔类型 interval year(p)年-月型时间间隔,只有年 interval month(p)年-月型时间间隔,只有月 interval year(p) to month年-月型时间间隔,包含年、月 interval day(p)日-时型时间间隔,只有日 interval hour(p)日-时型时间间隔,只有小时 北京人大金仓信息技术股份有限公司 kingbasees数据类型 类型名说明 interval minute(p)日-时型时间间隔,只有分 interval second(p,s)日-时型时间间隔,只有秒及毫秒 interval day(p) to second(s)日-时型时间间隔,包括日、时、分、秒、毫秒 位串类型 bit(n)定长位串 bit varying(n)变长位串 二进制串类型 blob二进制大对象 bytea二进制串 布尔类型 boolean,bool逻辑布尔量 全文检索类型 tsvector 全文检索内容。用于存放适合于全文检索的文 本内容。对于文本的格式,tsvector以消除重复 并按长度及字母顺序排序的语义保存文本内容 tsquery 全文检索条件。用于存放适合于全文检索的检 索条件的文本内容。其中,可以包含” 作为结束符。 北京人大金仓信息技术股份有限公司 sql语句基础 5.1.1kingbasees所用符号 kingbasees系统中的记号可以是关键字、标识符、常量或一些特定的符 号,它们通常使用分隔符(空格或新行)分隔。另外,在sql语句中还可以 有注释。 字符集 kingbasees系统中的字符可以是数字、字母、专用字符和汉字,在系 统中用于定义语言的终结符号与字符串元素。 北京人大金仓信息技术股份有限公司 sql语句基础 关键字 关键字是sql语言中具有特定意义的单词,例如,select、update 等。 关键字和标识符具有相同的词法结构。关键字是系统使用的标识符,大部 分关键字系统是保留使用的,用户标识符尽量不与关键字相同。 标识符是标识sql语句中所使用的表、列或其它数据库对象的名称。标识 符必须以当前字符集所支持的多字节字符、字母或下划线开头,标识符里 随后的字符可以是当前字符集所支持

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论