数据库基础:基本概念
数据库、数据管理和数据管理系统
数据管理,是指对数据进行分类、组织、编码、存储、检索和维护。
数据库,存储数据的容器。
数据管理系统,DBMS(Database Management System),是管理数据库的软件。数据库管理系统是数据库系统的核心,实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。
关系数据库管理系统
关系数据库管理系统,RDBMS(Relational Database Management System),RDBMS的特点:
- 数据以表格的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成database
数据库管理系统的几个阶段
人工管理
- 不能长期保存
- 程序本身管理数据
- 不支持共享
- 缺乏独立性
文件管理
- 能够长期保存
- 文件系统管理数据
- 数据冗余大,共享性差
- 独立性差
数据库管理
- 能够长期保存
- 支持共享
- 独立性强
- 数据粒度变小
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 数据库程序
常用的数据库管理程序有 MS Access、SQL Server、MySQL等,其中MySQL最为典型。
RDBMS的一些术语如下:
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
- 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
数据库的锁
数据库有两种锁,共享锁【S】和排他锁【X】。
共享锁:又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A。其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
排他锁:又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A。但其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
共享锁允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。
ReentrantLock就是一种排它锁。CountDownLatch是一种共享锁。这两类都是单纯的一类,即,要么是排它锁,要么是共享锁。
ReentrantReadWriteLock是同时包含排它锁和共享锁特性的一种锁。使用ReentrantReadWriteLock的写锁时,使用的便是排它锁的特性;使用ReentrantReadWriteLock的读锁时,使用的便是共享锁的特性。
MySQL
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL 是开源的,所以你不需要支付额外的费用。
- MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
- MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
- MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:
- 表头(header): 每一列的名称;
- 列(col): 具有相同数据类型的数据的集合;
- 行(row): 每一行用来描述某条记录的具体信息;
- 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
- 键(key): 键的值在当前列中具有唯一性。
数据库基础:基本概念相关推荐
- 数据库基础笔记(MySQL)1 —— 基础概念
(写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈) 如何下载配置 这个感觉视频讲的 ...
- 数据库的基本概念-基础(课堂笔记)
数据库的基本概念 1.数据库的英文单词 : DataBase 简称 : DB 2.什么是数据库 用于存储和管理数据的仓库 3.数据库的特点: 1.持久化存储数据的.其实 ...
- 数据库基础(基本概念、关系数据库、数据库标准语言SQL)
数据库基础 绪论 数据库系统概述 4个基本概念 数据(data) 定义:描述事物的符号.数据的含义称为数据的雨衣,数据与其语义是密不可分的. 数据库(DataBase,DB) 定义:数据库是长期存储在 ...
- SSH:Oracle数据库基础
2019独角兽企业重金招聘Python工程师标准>>> Oracle数据库基础 一:Oracle基础知识 Oracle数据库的主要特点 (1.)支持多用户,大事务量的事务处理 (2. ...
- 1 SQL server数据库基础
SQL server数据库基础 一 数据库简介 1数据库的基本概念 1)数据 ·描述事物的符号记录称为数据(Data),包括数字.文字.图像.声音等.以"记录"的形式按统一格式进行 ...
- php大牛额城战笔记,PHP语言大牛开发笔记(8)——MySQL数据库基础回顾[2]
本文主要向大家介绍了PHP语言大牛开发笔记(8)--MySQL数据库基础回顾[2],通过具体的实例向大家展示,希望对大家学习php语言有所帮助. 一.数据表 为了确保数据的完整性和一致性,在创建表时指 ...
- SQL Server基础知识概念要点详细讲解
SQL Server基础知识概念要点详细讲解 目录 基础概念 1.网状模型数据库 2.层次模型数据库 3.关系模型数据库 知识点实例总结 基础概念 SQL语言中,between and表示包括两边参数 ...
- 家族关系查询系统程序设计算法思路_【学习笔记】数据库基础 - 查询优化
目录 什么是数据库查询优化? 影响查询优化的因素 优化策略概述 查询优化的总体思路 语义优化 -- 内容等价性 语法优化(逻辑层优化)---语法等价性 执行优化(物理层优化) 查询优化在DBMS中的位 ...
- 19年8月 字母哥 第一章 spring boot 2.x基础及概念入门 这里全部看完了 热部署没出来 第二章在前面2页 用热点公司网不行
http://springboot.zimug.com/1233100 文档 http://www.zimug.com/page/5 字母哥个人博客 11111 第一章 spring bo ...
- delphi7存取配置文件与sqlserver数据库连接_SQL Server基础知识概念要点详细讲解
SQL Server基础知识概念要点详细讲解 目录 基础概念 1.网状模型数据库 2.层次模型数据库 3.关系模型数据库 知识点实例总结 基础概念 SQL语言中,between and表示包括两边参数 ...
最新文章
- 模具和java哪个好_93年,本科毕业一年(模具专业),想学Java转行怎么样?
- 关于string的一些心得体会
- 从小白到精通python要多久-小白学Python需要多久?老男孩Python培训教程
- Struts2+Spring详解
- Hadoop HBase概念学习系列之HBase里的客户端和HBase集群建立连接(详细)(十四)...
- 是银弹吗?业务基线方法论
- 有关于mysql自增型需要返回id_关于mysql自增id,你需要知道的
- linux 命令 kps,Linux顶级命令.内存使用情况
- 2019.7.26数组
- 惠新宸:我也曾经是“不适合”编程的人
- 吴恩达深度学习——深度学习概论
- linux 查看登录记录,Linux查看用户登陆历史记录
- Ubuntu环境下配置巴斯勒相机及相机测试
- 证件照怎么裁剪?国考证件照的尺寸是多少?
- css精华怎么使用,css橄榄精华好用吗?css橄榄精华评测
- mc通用计算机,《我的世界》里打造一台计算机有多难?复旦大神花一年终于实现!...
- AIR780E使用AT连接TCP收发数据
- c语言0和1二进制,二进制0和1代表什么
- GEE遥感云大数据如何应用在林业生态领域中?监测森林扰动、火灾、砍伐退化、生理参数、植被状态
- 如何用PPT编制方案 (6)PPT完成度的自检表
热门文章
- Eolink 微光计划
- 三国志战略版:Daniel_颜良分析
- Navicat Premium 10.0.10 中文版注册码
- 身份证二要素验证的使用场景介绍
- android的searchview焦点,Android how to focus ActionBar searchView
- sklearn 笔记:高斯过程
- Delphi 11.2 配置Android SDK 环境
- MobaXterm的SOCKS代理连接与bitvise client 软件的C2S与S2C连接
- 【工程师有空了】安信可ESP32之TOUCH触摸传感器的花式应用--一个IO识别多个触摸按键
- 载药脂质体并表面修饰各种分子定制-带有多肽的脂质分子