• 初识数据库


     

    一 数据库管理软件的由来

    基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。

    如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。

    上述假设存在以下几个问题。

    1、程序所有的组件就不可能运行在一台机器上

    #因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于继承它的硬件,而一台机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的技能 垂直 进行扩展是有极限的,而且成本高。
    
    #于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。

    2、数据安全问题

    #根据1的描述,我们将程序的各个组件分布到各台机器,但需知各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。
    
    #于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。

    3、并发 

    根据2的描述,我们必须写一个socket服务端来管理这台机器(数据库服务器)上的文件,然后写一个socket客户端,完成如下功能:

    #1.远程连接(支持并发)
    #2.打开文件
    #3.读写(加锁)
    #4.关闭文件

    总结:

    #我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

    二 数据库概述 

    1 什么是数据(Data) 

    描述实物的符号记录成为数据,描述事物的符号既可以是数字,也可以是文字、图片、声音等,数据有多种表现形式,他们都可以经过数字化后存入计算机

    在计算机中描述一个事物,就抽取这一事物的典型特征,组成一条纪律,就相当于文件里的一行内容,如:

    1 egon,male,18,1999,山东,计算机系,2017,oldboy

    单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题

    1 name,sex,age,birth,born_addr,major,entrance_time,school #字段
    2 egon,male,18,1999,山东,计算机系,2017,oldboy #记录

    这样我们就可以了解egon,性别为男,年龄18岁,出生于1999年,出生地为山东,2017年考入老男孩计算机系

    2 什么是数据库(DataBase,简称DB)

    数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的

    数据库是长期存放在计算机内、有组织、可共享的数据集合

    数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可以为各种用户共享。

    3 什么是数据库管理系统(DataBase Management System 简称DBMS)

    在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键

    这就用到了一个系统软件---数据库管理系统

    如MySQL、Oracle、SQLite、Access、MS SQL Server

    mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
    oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
    sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

    4 数据库服务器、数据管理系统、数据库、表与记录的关系(重点理解!!!)

    记录:1 刘海龙  324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)

    表:student,scholl,class_list(即文件)

    数据库:oldboy_stu(即文件夹)

    数据库管理系统:如mysql(是一个软件)

    数据库服务器:一台计算机(对内存要求比较高)

    总结:

      数据库服务器:运行数据库管理软件的机器

      数据库管理软件:管理数据库的软件 如mysql

      数据库:文件夹,用来组织文件/表

      表:即文件,用来存放多行内容/多条记录

    三 mysql介绍

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(关系型数据库)应用软件之一。

    mysql是什么

    #mysql就是一个基于socket编写的C/S架构的软件
    #客户端软件
      mysql自带:如mysql命令,mysqldump命令等
      python模块:如pymysql

    数据库管理软件分类

    分两大类:(sql语句通用)
        关系型:如sqllite,db2,oracle,access,sql server,MySQL
        非关系型:mongodb,redis,memcache
    
    可以简单理解为:
        关系型数据库需要有表结构
        非关系型数据库是key-value存储的,没有表结构
  • 相关阅读:
    管理博文 Web开发教程:Kendo UI for jQuery数据管理——列模板
    WPF界面开发新纪元——Diagram/Gantt控件升级
    Winform界面开发:WinForms应用程序中的MDI、SDI和MFI接口类型
    依赖注入[2]: 基于IoC的设计模式
    依赖注入[1]: 控制反转
    OAuth2.0的理解&基础
    开放平台鉴权以及OAuth2.0介绍
    OAuth2.0 知多少
    理解OAuth 2.0
    微服务架构介绍及开源框架
  • 原文地址:https://www.cnblogs.com/Xuuuuuu/p/10394450.html
Copyright © 2020-2023  润新知