技术大牛的成长之路:从零开始,亲手打造数据库系统

发表时间: 2023-10-25 20:02

技术大牛成长课,从0到1带你手写一个数据库系统

download: www.sisuoit.com/4439.html

数据库体系DBS(Data Base System,简称DBS)通常由软件、数据库和数据办理员组成。其软件主要包含操作体系、各种宿主言语、实用程序以及数据库办理体系。数据库由数据库办理体体系一办理,数据的插入、修正和检索均要经过数据库办理体系进行。数据办理员担任创立、监控和维护整个数据库,使数据能被任何有权运用的人有效运用。数据库办理员一般是由业务水平较高、资历较深的人员担任。 [1]
数据库体系的个体意义是指一个详细的数据库办理体系软件和用它树立起来的数据库;它的学科意义是指研讨、开发、树立、维护和运用数据库体系所涉及的理论、方法、技能所构成的学科。在这一意义下,数据库体系是软件研讨范畴的一个重要分支,常称为数据库范畴。 [1]
数据库体系是为习惯数据处理的需求而发展起来的一种较为理想的数据处理的中心机构。核算机的高速处理才能和大容量存储器供给了完结数据办理自动化的条件。
数据库研讨跨越于核算机运用、体系软件和理论三个范畴,其间运用促进新体系的研制开发,新体系带来新的理论研讨,而理论研讨又对前两个范畴起着指导作用。数据库体系的呈现是核算机运用的一个里程牌,它使得核算机运用从以科学核算为主转向以数据处理为主,并然后使核算机得以在各行各业甚至家庭遍及运用。在它之前的文件体系尽管也能处理持久数据,可是文件体系不供给对任意部分数据的快速拜访,而这对数据量不断增大的运用来说是至关重要的。为了完结对任意部分数据的快速拜访,就要研讨许多优化技能。这些优化技能往往很复杂,是普通用户难以完结的,所以就由体系软件(数据库办理体系)来完结,而供给运用户的是简略易用的数据库言语。因为对数据库的操作都由数据库办理体系完结,所以数据库就能够独立于详细的运用程序而存在,然后数据库又能够为多个用户所同享。因而,数据的独立性和同享性是数据库体系的重要特征。数据同享节约了大量人力物力,为数据库体系的广泛运用奠定了根底。数据库体系的呈现使得普通用户能够方便地将日常数据存入核算机并在需求的时分快速拜访它们,然后使核算机走出科研机构进入各行各业、进入家庭。 [1]
数据库体系有大小之分,大型数据库体系有SQL Server、Oracle、DB2等,中小型数据库体系有Foxpro、Access、MySQL。
构成
数据库体系一般由4个部分组成:
(1)数据库(database,DB)是指长时间存储在核算机内的,有安排,可同享的数据的集合。数据库中的数据按一定的数学模型安排、描绘和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户同享。
(2)硬件:构成核算机体系的各种物理设备,包含存储所需的外部设备。硬件的装备应满足整个数据库体系的需求。
(3)软件:包含操作体系、数据库办理体系及运用程序。数据库办理体系(database management system,DBMS)是数据库体系的中心软件,是在操作体系的支撑下作业,解决如何科学地安排和存储数据,如何高效获取和维护数据的体系软件。其主要功用包含:数据定义功用、数据操作功用、数据库的运转办理和数据库的树立与维护。
(4)人员:主要有4类。第一类为体系分析员和数据库规划人员:体系分析员担任运用体系的需求分析和规范说明,他们和用户及数据库办理员一起确定体系的硬件装备,并参加数据库体系的概要规划。数据库规划人员担任数据库中数据的确定、数据库各级形式的规划。第二类为运用程序员,担任编写运用数据库的运用程序。这些运用程序可对数据进行检索、树立、删去或修正。第三类为最终用户,他们利用体系的接口或查询言语拜访数据库。第四类用户是数据库办理员(data base administrator,DBA),担任数据库的整体信息操控。DBA的详细责任包含:详细数据库中的信息内容和结构,决议数据库的存储结构和存取战略,定义数据库的安全性要求和完整性约束条件,监控数据库的运用和运转,担任数据库的功用改进、数据库的重组和重构,以提高体系的功用。
特色
数据的结构化,数据的同享性好,数据的独立性好,数据存储粒度小,数据办理体系,为用户供给了友好的接口。
数据库体系的中心和根底,是数据模型,现有的数据库体系均是根据某种数据模型的。
数据库体系的中心是数据库办理体系。
数据库体系一般由数据库、数据库办理体系(DBMS)、运用体系、数据库办理员和用户构成。DBMS是数据库体系的根底和中心。
基本要求
播报
修改
对数据库体系的基本要求是:
①能够保证数据的独立性。数据和程序相互独立有利于加速软件开发速度,节约开发费用。
②冗余数据少,数据同享程度高。
③体系的用户接口简略,用户容易掌握,运用方便。
④能够保证体系运转牢靠,呈现毛病时能迅速扫除;能够保护数据不受非授权者拜访或损坏;能够防止过错数据的发生,一旦发生也能及时发现。
⑤有重新安排数据的才能,能改动数据的存储结构或数据存储方位,以适运用户操作特性的变化,改进因为频频插入、删去操作形成的数据安排零乱和时空功用变坏的状况。
⑥具有可修正性和可扩充性。
⑦能够充分描绘数据间的内在联络。
数据形式
播报
修改
数据模型是信息模型在数据国际中的表明形式。可将数据模型分为三类:层次模型、网状模型和联络模型。
(1)层次模型
层次模型是一种用树形结构描绘实体及其之间联络的数据模型。在这种结构中,每一个记录类型都是用节点表明,记录类型之间的联络则用结点之间的有向线段来表明。每一个双亲结点能够有多个子节点可是每一个子节点只能有一个双亲结点。这种结构决议了选用层次模型作为数系安排方法的层次数据库体系只能处理一对多的实体联络。
(2)网状模型
网状模型允许一个结点能够一起拥有多个双亲结点和子节点。因而同层次模型比较,网状结构更具有遍及性,能够直接地描绘现实国际的实体。也能够以为层次模型是网状模型的一个特例。
(3)联络模型联络模型是选用二维表格结构表达实体类型及实体间联络的数据模型,它的基本假定是所有数据都表明为数学上的联络。
拜访过程
播报
修改
数据库办理体系是数据库体系的中心,对数据库的全部操作,如原始数据的装入、检索、更新、再安排等等,都是在DBMS的指挥、调度下进行的,它是用户与物理数据库之间的桥梁,根据用户的命令对数据库履行必要的操作。 [2]
安全战略
播报
修改
第一,体系安全战略:包含了数据库用户办理、数据库操作规范、用户认证、操作体系安全4个部分。
1)数据库用户办理。数据库用户对信息拜访的最直接途径就是经过用户拜访。因而需求对用户进行严厉的办理,只要真正可信的人员才拥有办理数据库用户的权限;
2)数据库需求有操作规范。数据库中数据才是中心,不能有任何的损坏,数据库办理员是仅有能直接拜访数据库的人员,办理员的操作是非常重要的,因而需求对数据库维护人员培训,树立谨慎的作业态度,一起需求规范操作流程;
3)用户身份的认证。Oracle数据库能够运用主机操作体系认证用户,也能够运用数据库的用户认证,从安全角度出发,initSID.ora文件中的remote_os_authent参数设成FALSE,以防止没有口令的衔接。主张将remote_os_roles设成FALSE,防止欺骗性衔接;
4)操作体系安全。关于运转任何一种数据库的操作体系来说,都需求考虑安全问题。数据库办理员以及体系账户的口令都有必要符合规定,不能过于简略而且需求定期的更换口令,关于口令的安全同样重要。体系办理员在给操作体系做维护的时分,需求与数据库办理员合作,防止。
第二,数据安全战略。
数据安全战略决议了能够拜访特定数据的用户组,以及这些用户的操作权限。数据的安全性取决数据的灵敏程度,如果数据不是那么灵敏,则数据的安全战略则能够稍微松一些;反之则需求拟定特定的安全战略,严厉的操控拜访目标,保证数据的安全。
第三,用户安全战略。
用户安全战略是由一般用户安全、最终用户安全、办理员安全、运用程序及开发人员安全、运用程序办理员安全5个部分组成。
1)一般用户安全。如果关于用户的认证由数据库进行办理,则安全办理员就应该拟定口令安全战略来维护数据库拜访的安全性。能够装备oracle运用加密口令来进行客户机/服务器衔接;
2)最终用户安全。安全办理员有必要为最终用户安全拟定战略。如果运用的是大型数据库一起还有许多用户,这是就需求安全办理员对用户组进行分类,为每个用户组创立用户人物,而且对每个人物颁发相应的权限;
3)办理员安全。安全办理员应当拥有论述办理员安全的战略。在数据库创立后,应对SYS和SYSTEM用户名更改口令,以防止对数据库的未认证拜访,且只要数据库办理员才可用;
4)运用程序开发人员安全。安全办理员有必要为运用数据库的运用程序开发人员拟定一套特别的安全战略。安全办理员能够把创立必要目标的权限颁发运用程序开发人员。反之,创立目标的权限只能颁发数据库办理员,他从开发人员那里接收目标创立请求;
5)运用程序办理员安全。在有许多数据库运用程序的大型数据库体系中,能够设立运用程序办理员
第四,口令办理战略。口令办理包含账户确定、口令老化及到期、口令历史记录、口令复杂性校验。
1)帐户确定。当某一特定用户超过了失利登录尝试的指定次数,服务器会自动确定这个用户帐户;
2)口令老化及到期。DBA运用CREATE PROFILE句子指定口令的最大生存期,当抵达了指定的时间长度则口令到期,用户或DBA有必要变更口令;
3)口令历史记录。DBA运用CREATE PROFILE句子指定时间间隔,在这一间隔内用户不能重用口令;
4)口令复杂性校验。经过运用PL/SQL脚本utlpwdmg.sql(它设置缺省的概要文件参数),能够指定口令复杂性校验例行程序。
常见数据库体系
播报
修改
MySQL
MySQL是一个快速的、多线程、多用户和强健的SQL数据库服务器。MySQL服务器支撑要害使命、重负载出产体系的运用,也能够将它嵌入到一个大装备(mass- deployed)的软件中去。
SQL Server
SQL Server 供给了众多的Web和电子商务功用,如对XML和Internet规范的丰厚支撑,经过Web对数据进行轻松安全的拜访,具有强大的、灵活的、根据Web的和安全的运用程序办理等。
Oracle
Oracle产品系列彻底,几乎囊括所有运用范畴,大型,完善,安全,能够支撑多个实例一起运转,功用强。能在所有干流平台上运转。彻底支撑所有的工业规范。选用彻底开放战略。能够使客户挑选最适合的解决方案。对开发商全力支撑。