数据库发展的那点事
我学数据库(1)--数据库发展的那点事 自己在学习MSSQL搜集资料的同时,注意做了点记录和思考,并将自己的学习心得放在在里面,所以不要看着标题厌烦就不读哦,里面的内容还是挺好的,在以后的随笔当中我尽量不让文字太生硬,毕竟我也不喜欢生硬的动西,快乐学
我学数据库(1)--数据库发展的那点事
自己在学习MSSQL搜集资料的同时,注意做了点记录和思考,并将自己的学习心得放在在里面,所以不要看着标题厌烦就不读哦,里面的内容还是挺好的,在以后的随笔当中我尽量不让文字太生硬,毕竟我也不喜欢生硬的动西,快乐学习嘛,这也是我在参加工作后一直坚持的,欢迎大家过来看看,并在以后时间里给予多多的支持。
任何东西都是从无到有的,这是大自然的定律。任何东西的存在与繁荣都是基于它满足了某种需求这个条件,也就是我们说的存在即合理。说数据库熟悉是因为现在它的普遍性,说它陌生是因为它的专业性,而且我也不是专门研究数据库知识的。那它是怎样从无到有?又是怎样从有到优,逐渐满足多领域业务需要的呢?我带着这个疑问开始去搜集了资料,自己学习整理了一下,在这里分享给大家。
数据库的历史可以追溯到60年前,那时的数据管理非常简单,基本上靠人工还有通过大量的简单机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片,而数据管理就是对所有这些穿孔卡片进行物理的储存和处理,属于顺序存储数据。1 9 5 1 年,雷明顿兰德公司(Remington Rand Inc)的一种叫做Univac I 的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,于是一场关于数据管理的革命开始了。1956 年IBM生产出第一个磁盘驱动器— the Model 305 RAMAC,这真是成了开天始祖啦。这也奠定了IBM之后在此领域的领先位置。此驱动器有50 个盘片,每个盘片直径是2 英尺,可以储存5MB的数据,5MB啊,现在看来还不到一首歌的容量,可在当时那就是一个巨大的进步啊。使用磁盘最大的好处是可以随机地存取数据,而穿孔卡片和磁带只能顺序存取数据。你看人家IBM,至1911建立都100多年了,经久不衰,很厉害的一个公司。(注明:1英尺=12英寸=0.3048 米,另外我找了一下这个公司的资料:雷明顿兰德公司Remington Rand,1927年-1986年,是美国早期的一家电脑制造商,这家公司最为人熟知的即是它为UNIVAC I电脑的原造厂,而今它已成为优利系统Unisys公司的一部份。有一阵子"univac"一字几乎是"computer"的代名词。)
那时候,也就是50年代这10年,数据管理技术已经经历了两个阶段:人工管理阶段和文件系统阶段。人工管理阶段数据不会被长期保存,没有特定的系统软件负责数据的管理,当然数据也不能很好的被共享而且数据之间独立性不强。文件系统阶段,数据不仅可以长期保存而且有专门的文件系统管理数据,但是共享性差冗余度大以及数据独立性差的缺点仍没能得到解决。(注明:数据独立性是数据库系统追求的一个重要目标,包括物理独立性和逻辑独立性,它要求数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变;还要求当数据的逻辑结构改变时,用户程序也可以不变。)
至1946年第一台计算机出现之后过去了15年,也就是60年代,计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求,数据的共享性差、冗余度大以及独立性差的问题亟待解决。在这种情况下,数据库管理系统应运而生。要统一管理和共享数据不是一件简单的事,构建数据模型是重中之重,这是数据库管理系统的核心和基础。对于数据模型来说,如果是计算机专业和软件专业的并不陌生。数据模型是数据特征的抽象,是数据库系统中用以提供信息表示和操作手段的形式构架,其实这句话的意思就是如何表示去表示数据和操作数据,还有如何表示数据之间的关系,其实这句话表明了数据库数据模型的组成要素:数据的结构部分、数据的操作部分和数据的约束条件。数据结构就是主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。数据操作主要描述在相应的数据结构上的操作类型和操作方式。数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。(注明:是不是看这些东西有点摸不着头脑啊?没办法,忍一忍吧,下面还有呢。数据库管理系统打起来挺麻烦的,以后再出现就以DBMS代替。)
数据模型按不同的应用层次分成三种类型:概念数据模型、逻辑数据模型、物理数据模型。这都是些比较难懂的概念,而且都是很专业的解释,没办法,理论就是这样字,因为空洞所以才难懂。概念数据模型简称概念模型,是面向数据库用户的现实世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的DBMS无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。逻辑数据模型简称逻辑模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型、层次数据模型等等。此模型既要面向用户,又要面向系统,主要用于DBMS的实现。物理数据模型简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,网站空间,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成。各种DBMS 软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。
接下来就介绍一些早期的DBMS产品吧。最早出现的是网状 DBMS,是美国通用电气公司Bachman等人在1961年开发成功的IDS(Integrated Data Store)。1961年通用电气公司的Charles Bachman 成功地开发出世界上第一个网状DBMS也是第一个数据库管理系统--集成数据存储(Integrated Data Store IDS),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。IDS 具有数据模式和日志的特征。但它只能在GE主机上运行,并且数据库只有一个文件,数据库所有的表必须通过手工编码来生成。之后通用电气公司一个客户—BF Goodrich Chemical 公司最终不得不重写了整个系统,并将重写后的系统命名为集成数据管理系IDMS。网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,在关系数据库出现之前网状DBMS要比层次DBMS用得普遍。在数据库发展史上,网状数据库占有重要地位。(注明:GE主机,即通用电气主机)

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

可以通过使用gjson库或json.Unmarshal函数将JSON数据保存到MySQL数据库中。gjson库提供了方便的方法来解析JSON字段,而json.Unmarshal函数需要一个目标类型指针来解组JSON数据。这两种方法都需要准备SQL语句和执行插入操作来将数据持久化到数据库中。

在Golang中使用数据库回调函数可以实现:在指定数据库操作完成后执行自定义代码。通过单独的函数添加自定义行为,无需编写额外代码。回调函数可用于插入、更新、删除和查询操作。必须使用sql.Exec、sql.QueryRow或sql.Query函数才能使用回调函数。

通过Go标准库database/sql包,可以连接到MySQL、PostgreSQL或SQLite等远程数据库:创建包含数据库连接信息的连接字符串。使用sql.Open()函数打开数据库连接。执行SQL查询和插入操作等数据库操作。使用defer关闭数据库连接以释放资源。

在C++中使用DataAccessObjects(DAO)库连接和操作数据库,包括建立数据库连接、执行SQL查询、插入新记录和更新现有记录。具体步骤为:1.包含必要的库语句;2.打开数据库文件;3.创建Recordset对象执行SQL查询或操作数据;4.遍历结果或按照具体需求更新记录。
