当前位置: 首页 > article >正文

【数据库】数据库基本知识

1.数据库的四个基本概念

1.1 数据:描述事务的符号记录

1.2 数据库:概括的说,数据库数据具有永久存储、有组织的、可共享的大量数据的集合,数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

1.3 数据库管理系统:是位于用户和操作系统之间的一层数据管理软件。和操作系统一样是计算机的基础软件。

主要功能:

1.数据定义功能

2.数据组织、存储和管理

3.数据操纵功能

4.数据库的事务管理和运行管理

5.数据库的建立和维护功能

6.其他功能(通信功能、数据转换功能、互访和互操作功能)

1.4 数据库系统:由数据库、数据库管理系统、数据库管理员组成的存储、管理、处理和维护数据的系统。

2.数据库的发展阶段

数据的共享性高,冗余度低且易扩充:数据共享可以大大减少数据冗余,节约存储空间

数据独立性高:

物理独立性:是指用户的应用程序与数据库中数据的物理存储是相互独立的。

逻辑独立性:是指用户的应用程序与数据库的逻辑结构是相互独立的。

数据模型:

(1)两类数据模型:概念模型+逻辑模型和物理模型

1.概念模型:也称信息模型,是按用户来对数据和信息建模,主要用于数据库设计。

基本概念:

实体:客观存在并不相互区别的事物。

属性:实体所具有的某一特性。

实体型:用实体名及其属性集合来抽象和刻画同类实体。

联系:

实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一,一对多和多对多等多种联系。

实体内部的联系通常是指实体各属性之间的联系。

(2)常用的数据模型

层次模型,网状模型,关系模型,面向对象数据模型,对象关系型模型。

关系模型:

(3)数据库系统的结构

1.模式数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。其一个具体值称为模式的一个实例。

模式是相对稳定的,实例是相对变动的。

三级模式结构:外模式+模式+内模式

外模式:也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。

模式:逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

内模式:存储模式,一个数据库只有一个内模式。是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。

2.二级映像:

外模式/模式映像:当模式改变时,由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变,应用程序不必修改。保证了数据与程序的逻辑独立性。

模式/内模式映像:当数据库的存储结构改变时,有数据库管理员对模式/内模式作相应改变,可以使模式保持不变,从而应用程序也不变。保证了数据与程序的物理独立性。

(4)数据库系统的组成

1.硬件平台及数据库:足够大内存、磁盘或磁盘阵列等设备,较高的通道能力以提高数据的传送率。

2.软件:数据库管理系统,支持数据库管理系统运行的操作系统,具有与数据库接口的高级语言及其编译系统,以数据库管理系统为核心的应用开发工具,为特定应用环境开发的数据库应用系统。

使用数据库的方式:

第一种方式是支持联机事务处理(online transaction processing),即大量的用户使用数据库,每个用户检索相对少量的数据,进行小的更新。

第二种方式是支持数据分析(data analytics),即审阅数据,给出结论,并推导出规则或决策程序,用于驱动业务决策。

在文件处理系统中存储组织机构的信息的主要弊端包括以下方面:

数据的冗余和不一致性。不同的文件可能有不同的结构,不同程序可能采用不同的程序设计语言编写。

数据访问困难。

数据孤立。编写新的应用程序来检索适当数据很困难。

完整性问题。数据库中所存储数据的值必须满足某些特定类型的一致性约束。

原子性问题。如同任何别的设备一样。保证数据的一致性。

并发访问异常。为了提高系统的总体性能以及加快响应速度,许多系统允许多个用户同时更新数据。

安全性问题。


http://www.kler.cn/a/272581.html

相关文章:

  • DLNA库Platinum新增安卓64位so编译方法
  • Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
  • SpringBoot2 + Flowable(UI)
  • 如何在linux系统上完成定时开机和更新github端口的任务
  • PHP xml 常用函数整理
  • vue 学习笔记 - 创建第一个项目 idea
  • Vue3项目部署安装
  • Redis是如何实现持久化的?请解释RDB和AOF持久化方式的区别和优缺点。Redis是单线程还是多线程的?为什么Redis使用单线程模型仍然能保持高性能?
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TimePicker)
  • Spring Boot(七十):利用Jasypt对数据库连接进行加密
  • esp32蜂鸣器进行周期性鸣叫
  • Linux 时间系统调用
  • Android VINF和兼容性矩阵
  • 【自学用】B站python爬虫课程笔记(Q11-15)
  • 一个新名词之CSS高度塌陷
  • PyCluster 问题和解决方案
  • 【ElasticSearch】sping框架集成
  • Linux下添加新磁盘并扩展根目录空间的实用指南
  • Unity游戏项目接广告
  • 航空公司遭遇Play恶意家族攻击,亚信安全发布《勒索家族和勒索事件监控报告》
  • mudo服务器测试一
  • 关于MySQL数据库的学习3
  • 【深度学习】diffusers 学习过程记录,StableDiffusion扩散原理
  • 海豚调度系列之:认识海豚调度
  • Git一点通
  • lua profile 性能分析工具都有哪些