设为首页 收藏本站
查看: 589|回复: 0

[经验分享] mysql之数据库基本理念

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-29 08:43:37 | 显示全部楼层 |阅读模式
数据储存的问题:
    数据冗余和不一致
    数据访问困哪
    数据孤立
    完整性
    原子性问题
        例如AB2个账户,从A中向B转钱,不管如何转,A和B的总量是保持不变的。只要A减少,B就增加。
    并发访问异常
    安全性问题

    文件的分层:
        表示层:看到的文件
        逻辑层:文件系统,存储引擎
        物理层:元数据+数据

    关系型数据库的结构:
        表示层:库、表、索引等等
        逻辑层:存储引擎(解构)
        物理层:数据文件


关系型数据库的工作流程结构:
    发起查询(应用程序、sql用户、程序员、dba等) --> 查询管理器(各种解释器 --> 查询执行引擎) --> 存储管理器(各种管理器) --> 写入磁盘( 数据文件、索引文件、日志文件等)


关系运算:
    选择(选择元组):
        只输出符合条件的行。
        指定以某字段作为搜索码,做逻辑运算,筛选符合条件的行。

    投影(选择属性):
        只输出指定字段的属性。
        显示部分指定字段,筛选符合条件的列。

    自然连接:
        只输出2张表中字段名相同,属性值相同的行的连接。2张表建立了一个等值连接。
        例如有2张表,表A中字段名称USERNAME,对应的属性值为X,同一行中另一个字段为SHELL,属性值为Y,和表B中的字段名称为SHELL,属性为Y相同。B中同一行中另一个字段为SHELLTYPE,属性值为Z 。则自然连接显示为 X Y Y Z。其余输出以此类推。

    笛卡尔集(交叉连接):
        参照(a+b)*(c+d)=ac+ad+bc+bd此公式。此时不考虑表之间的关系。
        假设表A中,字段有USERNAME(tom 、jerry、mike)、SHELLNUM(1、2、3)。表B中有字段QQ(qq1、qq2、qq3)、TYPE(use、lock、use)。则输出为3*3 共计9行:
            tom 1 qq1 use
            tom 1 qq2 lock
            tom 1 qq3 use
            jerry 2 qq1 use
            jerry 2 qq2 lock
            jerry 2 qq3 use
            mike 3 qq1 use
            mike 3 qq2 lock
            mike 3 qq3 user

            注意:多表查询本质上就是先在内存中生成笛卡尔集,然后再查询,生成过程极大占用资源。

    并(集合运算):
        2张表中都有的部分称为并。

SQL查询语句:
    DDL
        完整性定义语言

    DML
    视图定义
    事物控制
    嵌入式SQL和动态SQL
    DCL

使用程序设计语言如何跟RDBMS交互:
    嵌入式SQL:
        类似与动态SQL,但其语句必须在程序编译时完全确定。比动态SQL更底层。例如ODBC(c)。注意ODBC是介于嵌入式和动态中间,不完全是嵌入式。
    动态SQL:
        程序设计语言使用函数或方法,与RDBMS服务器简历建立连接,向SQL服务器发送查询语句,将结果保存到变量中,而后进行处理。例如JDBC(java)。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-91723-1-1.html 上篇帖子: MySQL/MariaDB的备份与恢复 下篇帖子: mysql之mysql组件和工作原理 数据库 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表