数据库简介和sqlite3安装

news2024/12/23 4:58:35
        数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
        严格意义上来说,"数据库"不能被称之为"数据库",而是数据库管理系统,数据库管理系统是为了数据库而设计的计算机软件(通过数据库管理系统去操作数据库中的数据),一般具有存储, 截取,安全保障,备份等基础功能。 数据库与数据库管理系统类似于计算机中的 EXCEL 中的表格 和EXCEL 这个软件的关系

关系性数据库和非关系型数据库

        关系型数据库:指采用了关系模型来组织数据的数据库,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
        1.成本: 非关系数据库简单易部署,基本都是开源软件,不需要像使用关系型那样花费大量成本购买使用,非关系型数据库相比关系型数据库价格便宜。
        2.查询速度: 非关系数据库将数据存储于缓存之中,而且不需要经过 SQL 层的解析,关系型数据库将数据存储在硬盘中,自然查询速度远不及非关系数据库。
        3.存储数据的格式: 非关系的存储格式是 key,value 形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而关系型数据库则只支持基础类型。
        4.扩展性: 关系型数据库有类似 join 这样的多表查询机制的限制导致扩展很艰难。非关系基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
        5.持久存储: 非关系不使用于持久存储,海量数据的持久存储,还是需要关系型数据库
        6.数据一致性: 非关系型数据库一般强调的是数据最终一致性,不像关系型数据库一样强调数据的强一致性,从非关系型数据库中读到的有可能还是处于一个中间态的数据,非关系不提供对事务的处理。

常见关系型数据库

Oracle 是 1983 年推出的世界上第一个开放式商品化关系型数据库管理系统 甲骨文
DB2 是美国 IBM 公司开发的一套关系型数据库管理系统
SQL Server 是 Microsoft 公司推出的关系型数据库管理系统
Access 是由微软发布的关系数据库管理系统
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle旗下产品。
sqlite3 轻量级的开源关系型数据库管理系统,很适合在嵌入式设备中使用

常见的非关系型数据库

键值数据库:Redis Memcached Riak
列族数据库: Bigtable HBase Cassandra 文档数据库: MongoDB CouchDB MarkLogic
图形数据库: Neo4j InfoGrid

关系型数据库的优缺点

优点:
        1. 采用二维表结构非常贴近正常开发逻辑(关系型数据模型相对层次型数据模型和网状型数据模型等其他模型来说更容易理解);
        2. 支持通用的 SQL (结构化查询语言)语句;
        3. 丰富的完整性大大减少了数据冗余和数据不一致的问题。并且全部由表结构组成,文件格式一致;
        4. 可以用 SQL 句子多个表之间做非常繁杂的查询;
        5. 关系型数据库提供对事务的支持,能保证系统中事务的正确执行,同时提供事务的恢复、回滚、并发控制和死锁问题的解决。
        6. 数据存储在磁盘中,安全可靠。
缺点:
        1. 高并发读写能力差:网站类用户的并发性访问非常高,而一台数据库的最大连接数有限,且硬盘 I/O 有限,不能满足很多人同时连接。
        2. 海量数据情况下读写效率低:对大数据量的表进行读写操作时,需要等待较长的时间等待响应。
        3. 可扩展性不足:不像 web server app server 那样简单的添加硬件和服务节点来拓展性能和负荷工作能力。
        4. 数据模型灵活度低:关系型数据库的数据模型定义严格,无法快速容纳新的数据类型(需要提前知道需要存储什么样类型的数据)。
简而言之: 优点:容易理解,使用方便,易于维护,缺点:并发高,效率低,扩展性不足

非关系型数据库的优缺点

优点:
        1. 非关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
        2. 速度快,效率高。非关系型数据库可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘。
        3. 海量数据的维护和处理非常轻松,成本低。
        4. 非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。
        5. 可以实现数据的分布式处理。
缺点:
        1. 非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
        2. 非关系数据库没有事务处理,无法保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。
        3. 功能没有关系型数据库完善。
        4. 复杂表关联查询不容易实现。

关系型数据库的六大范式

这里只要提及前三范式:
1. 第一范式:
        数据库表中的字段都是单一属性的,不可再分。 (列不可再分)
2. 第二范式
        数据库表汇总不存在非关键字段对任一后选关键字段的部分函数依赖。 不存在传递依赖
3. 第三范式:
        数据表中不存在非关键字段对任一后选关键字段的传递函数依赖。( 表中其他列值必须唯一依赖于主键

什么是 ACID

        数据库事务是指一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性 )属性

E-R 模型

        E-R 模型又叫实体-关系模型, 全称为 实体联系模型 实体关系模型 实体联系模式图 ,主要是用来描述现实世界中的概念模型的,具体来说就是使用一下三种东西来描述我们要存储的数据:
        实体 客观存在的事物 在 E-R 图上用矩形表示
        属性 实体所具有的某一种属性 在 E-R 图上用椭圆表示
        联系 实体之间的相互关联 在 E-R 图上用菱形表示
        一个实体一般就会对应一个表格,每一个属性对应表格中的一列,表格一般会根据实体关系模式去设计,如下就是 E-R 图模型

主键和外键

        关系型数据库中的一条记录中拥有若干个属性,若其中某一个属性/属性组能够唯一的标识一条记录,该属性就可以是一个主键。
        比如对于一个学生表(学号,姓名,性别,班级);
        其中每一个学生的学号是唯一的,学号就是一个主键
        对于课程表(课程编号,课程名,学分,任课老师,开课时间);
        其中课程编号是唯一的,课程编号就是一个主键
        对于成绩表(学号,课程号,分数);
        其中单一的属性无法标识一条记录的,学号和课程号的组合才能唯一的标识一条记录,学号和课程号的组合是一个主键
        成绩表中的学号不是成绩表的主键,但是它和学生表中的学号相互对应,并且学生表中的学号是学生表的主键,则称成绩表的学号是学生表的外键.(在本表中不是主键,但是在其他表中是主键)
同理,成绩表中的课程号是课程表的外键
        主键和外键主要是为了维护关系型数据库的数据完整性
        主键是能够确定一条记录的唯一标识,外键用于与另一张表关联,能够确定另一张表格的字段,用于保持数据的一致性.
        注意在 sqlite3 数据库中的外键默认是关闭的。

数据库的安装

sqlite3 数据库的安装

方式 1:通过源代码安装
1.从 SQLite 下载页面 把源码包下载下来然后拷贝虚拟机目录(不要放到共享目录),例如:
cp sqlite-snapshot-201803271513.tar.gz /home/china/
2.解压源代码
tar -zxvf sqlite-snapshot-201803271513.tar.gz
3.进入源代码的目录
cd sqlite-snapshot-201803271513/
4. 自动配置生成 Makefile
./configure
5.自动编译源代码
make
6.安装数据库
sudo make install
方式 2:通过 APT 安装
命令如下:
sudo apt-get install sqlite3
sudo apt-get install sqlite3-doc
sudo apt-get install sqlitebrowser

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GoLong的学习之路(十四)语法之标准库 time(时间包)的使用

文章目录 time包跨时区时间戳时间间隔时间操作addSubEqualBeforeAfter 定时器时间格式化解析字符串格式的时间 time包 时间和日期是我们编程中经常会用到的,本文主要介绍了 Go 语言内置的 time 包的基本用法。 time 包提供了一些关于时间显示和测量用的函数。time…

Mac 安装nvm

安装方案: 1. 从github下载nvm仓库到 ~/目录 地址:https://github.com/nvm-sh/nvm.git git clone https://github.com/nvm-sh/nvm.git 2. 进入nvm目录中执行install.sh等待执行完成,执行的操作方法就是直接将文件拖入到终端然后回车。 3.…

微信小程序 slot 不显示

问题:创建组件&#xff0c;使用带名字的slot&#xff0c;页面调用组件使用slot不显示 源码&#xff1a; 组件xml <view class"p-item br24" style"{{style}}"><slot name"right" wx:if"{{!custBottom}}"></slot>&l…

IP应用场景API的反欺诈潜力:保护在线市场不受欺诈行为侵害

前言 在数字化时代&#xff0c;网络上的商业活动迅速增长&#xff0c;但与之同时&#xff0c;欺诈行为也在不断演化。欺诈者不断寻找新方法来窃取个人信息、进行金融欺诈以及实施其他不法行为。为了应对这一威胁&#xff0c;企业和组织需要强大的工具&#xff0c;以识别和防止…

【干货】JVS低代码表单基础组件的配置与应用

表单的基础组件主要用于收集用户输入的数据&#xff0c;并对这些数据进行验证和处理。通过表单组件&#xff0c;用户可以输入各种类型的数据&#xff0c;如文本、数字、日期、选择项等。这些数据可以通过表单的提交按钮提交到服务器进行处理&#xff0c;从而使网站或应用程序能…

元宇宙热潮依旧,《神由都城》引人注目

随着5G、云计算、人工智能、虚拟现实等技术的成熟,元宇宙的发展已然驶入快车道,这对企业来说是一个发展壮大的好机会。常孝股份抓住创新发展的机遇,打造属于自己的元宇宙世界——《神由都城》。 《神由都城》是以常孝股份旗下的文旅景区“中华孝道园”为依托,打造的元宇宙世界…

leetcode刷题日记之做菜顺序

原题链接&#xff1a; 做菜顺序 一个厨师收集了他 n 道菜的满意程度 satisfaction &#xff0c;这个厨师做出每道菜的时间都是 1 单位时间。 一道菜的 「 like-time 系数 」定义为烹饪这道菜结束的时间&#xff08;包含之前每道菜所花费的时间&#xff09;乘以这道菜的满意程…

【点云学习PCL 】一

点云学习 说明&#xff1a;仅做学习使用&#xff0c;侵删 参考网址1 一、点云基础 0 概述 PCL&#xff08;Point Cloud Library&#xff09;是用于 2D/3D 图像和点云处理的大型开源跨平台的 C 编程库&#xff0c;PCL 框架实现了大量点云相关的通用算法和高效的数据结构&…

Bytebase 2.10.0 - 支持更灵活的变更发布人:指定任意角色或自定义审批流的最后节点

&#x1f680; 新功能 发布策略支持制定更灵活的变更发布人&#xff1a;可以指定任意角色集合&#xff0c;也可以指定自定义审批流的最后一个审批人。 支持在项目中创建分支保护规则。支持给数据库设置标签。支持给字段设置标签。支持给表设置分类分级。 &#x1f384; 改进 …

C# Winform编程(10)Chart图表控件

Chart控件 Chart控件Chart属性详述Chart属性设置图表样式属性数据样式属性图例样式图标区样式SeriesChartType类型 Chart控件鼠标滚轮事件特殊处理Series绑定数据演示代码鼠标滚轮缩放图表示例参考引用 Chart控件 Chart控件是微软自带的一种图形可视化组件&#xff0c;使用简单…

node开发微信群聊机器人第⑤章

▍PART 序 看本文时&#xff0c;请确保前4章都已经看过&#xff0c;不然本章你看着看着思维容易跳脱&#xff01;再一个机器人教程只在公众号&#xff1a;“程序员野区”首发。csdn会跟着发一份&#xff0c;未经博主同意&#xff0c;请勿转载&#xff01;欢迎分享到自己的微信…

前端入门(一)JavaScript语法、数据类型、运算、函数

文章目录 概念JavaScript编写的位置基本语法数据类型变量声明var、let、constundefined与null的区别字符串类型数组Map和Set函数定义与参数传递 变量的作用域let、const方法的定义与调用常用内部对象json对象原型操作BOM对象操作DOM对象表单操作&#xff08;验证&#xff09;MD…

年轻人开发谁用默认背景?我直接美图安排上

文章目录 一、你还在用传统的开发界面吗二、年轻人的界面 1.动漫型2.偶像型3.提神型 三、更换背景的操作 第一步第二步第三步 一、你还在用传统的开发界面吗 不比不知道&#xff0c;一比吓一跳&#xff0c;都2023年了&#xff0c;你还在用Pycharm的默认背景写代码吗&#xf…

面试必考精华版Leetcode215. 数组中的第K个最大元素

题目&#xff1a; 代码&#xff08;2023年10月27日首刷看解析&#xff09;&#xff1a; class Solution { public:int findKthLargest(vector<int>& nums, int k) {return quickselect(nums,k);}int quickselect(vector<int>& nums,int k){vector<int&…

【Axure教程】中继器制作树元件

树元件在计算机科学和软件工程中常常用于构建和操作树形数据结构&#xff0c;提供了一种有效的方式来处理和查询具有层次性关系的数据&#xff0c;使开发人员能够更容易地组织和检索信息&#xff0c;用于组织和管理数据&#xff0c;具有各种应用。 那Axure里面也自带了一个树元…

C++中invoke与function的区别

C invoke invoke是C17标准引入的一个函数模板&#xff0c;用来调用可调用对象&#xff08;Callable Object&#xff0c;如函数指针、函数对象、成员函数指针等&#xff09;并返回结果。 invoke提供了统一的调用语法&#xff0c;无论可调用对象的类型是什么&#xff0c;都可以…

工业自动化产品抗干扰笔记

工业自动化产品抗干扰笔记 名词解释&#xff1a; 耦合矢量控制寄生振荡热噪点闪变噪点尖峰噪点反电势集肤效应交流电阻感抗容抗寄生电容共模与差模电场和磁场漏电流浪涌电压电流传输与电压传输各种地线解析 一、干扰来源&#xff1a; 任何一个电磁干扰现象都具有电磁干扰源…

大促期间的窜货低价怎么处理

产品窜货往往会伴随低价&#xff0c;所以监测窜货就是要先监测低价&#xff0c;当然有些产品卖价不低价也窜货&#xff0c;但这些正价或者高价卖的链接对渠道影响并不太大&#xff0c;所以治理低价窜货更重要。 力维网络专业为品牌提供窜货治理&#xff0c;低价监测的需求&…

NodeRed Modbus学习一(配置Modsim32)

新手小白 第一次使用这个玩意 会弹出一个小白框&#xff0c;不用管它。 新建File 下面两张图可以看出值在变化 通过下图可以看出还没有链接 创建连接 好了

在项目管理中,项目经理要控制这三个重要因素:进度、成本、质量

项目管理贯穿项目的整个生命周期&#xff0c;对项目的整个过程进行管理&#xff0c;对项目进行计划、组织、指导和控制的手段。 在项目的生命周期内&#xff0c;进行资源的配置和协调&#xff0c;做出科学决策&#xff0c;从而使项目执行的全过程处于最佳的运行状态&#xff…