菜鸟也能飞:SQL数据库实战专业教程(一)
写在前面的话:这个教程本来是想重点介绍SQL数据库,但是写着写着发现已经有很多关于数据的知识了,索性把项目整个开发过程都写了下来。由于时间确实很紧,教程收尾比较匆忙,感觉写的很对不起大家,但是基本上一个项目的流程就这么多了(不包括后期测试),什么时候该做什么,该用什么工具,有什么技巧,都差不多说到了,我的能力也就到这了。补充一点:每个阶段都要产生相应的文档,这可是非常重要的,真正做项目的时候不要忽略了!
直到现在,接触数据库的时间大约有一年了,刚开始用的时候真是一点也不懂,就那么硬生生的用,经过一年的积累,虽然还算是小菜,但是也懂得点东西。为了整理知识,同时帮助更多的人能更好的学习数据库,我决定把我学到的东西整理下来。鉴于网络上有很多关于数据库的教程,但很多都是孤立的知识点,这样初学者很难从整体上把握数据库,学习起来比较困难,也会产生一定的畏惧心理;同时,面对网络上繁多的资料,初学者往往很难正确选择比较的好的方法,很可能掌握的是过时或者不太实用的技术,当然包括我在内也是这样。
基于以上情况,本教程基于数据库实际应用,展示一个完整的数据库项目开发过程,其中会涉及一些数据库设计的经验技巧、项目开发过程中一些工具的使用、三层架构等。当然,本人也是小菜,再加上时间有限,不可能把所有的知识点都说到,一些基础的知识一带而过,重在宏观指导,重在应用体验,细节读者自己去百度或google。教程的目的是引导初学者成为一名专业的数据库应用开发者。本教程以SQL2005数据库和C#为例,构建一个简单的学生管理系统。本教程虽然为初级教程,但也不适合0基础的童鞋,适合处于迷茫状态的童鞋。废话少说,进入正题。
一、为什么要选择SQL数据库。
作为国际惯例,要先说一下为什么要选择SQL数据库。其实也不是SQL数据库有多好,比SQL优秀的数据库俺这种小菜就知道好几个,主要原因是SQL数据相对于其他数据库较为简单,包括安装、配置、使用,数据库原理都是相同的,把这个学好了其他的也不成问题;另一方面SQL数据库已经很专业了,学习的性价比高,总比学习Access数据库要好吧?其实,俺也只懂SQL而已。至于SQL数据库具体是什么、有什么特点,这个就留给读者去寻找答案了,相信地球人都能找到。
二、数据库原理简介。
数据库,顾名思义,就是存放数据的地方。SQL server 2005就是一个大型的数据库管理系统,在这个大型系统中我们可以建立很多数据库,用来为不同的程序服务,一般一个应用程序只有一个数据库。有了数据库就涉及数据具体内容,SQL数据库中包含了N个表,每个表都包括行和列,其中每个列叫做一个字段,每一行叫做一条记录,就好像坐标一样,x轴是记录,y轴是字段。字段是创建表时就定义好的,它有名称和类型,这些字段连在一起就是一条记录,所以理论上表可以有无限个记录。一个数据库中的N个表,通过关系联系在一起,就是传说中的关系型数据库。好像有些乱,下面来个图:
这些都是最基本的知识,为什么要提这些?说实话,我当初是费了好大劲才理解这个的,在这提出来,就是想给读者一些点播。
三、权限配置。
其实权限配置你完全不懂,也可以正常使用数据库,一般都是直接使用sa账户。作为一个完整的数据库教程,并且号称是专业的教程,必须涉及权限配置,可以不懂,但必须了解。
SQL server作为一个数据库平台,肯定不是给一个人用的,既然多人使用,就要涉及权限问题。比如A用户不能随意更改B用户的数据库、作为用户的A不能有系统管理员的权限等。说道权限就不得不提角色,什么是角色呢?简单的讲,就是某些权限的集合,也可以说是一组权限。这样一来,想让某个用户具有某类功能,只要指定角色就可以了,而不用一个一个的去分配权限,这样使权限分配变得更加快捷方便,并且有统一性。
SQL server中的角色图:
需要注意的是,服务器角色是在整个SQL平台层面上的角色,它只有固定角色(系统定义好的权限组);数据库角色是数据库层次上的角色,一个用户是A数据库的db_owner角色,不一定是B数据库的db_owner角色,它分为固定角色和自定义角色。
学习这些现在可能用不到,但是权限管理作为数据库一个重要特色,在将来的工作中一定有用武之地。现在看不懂也没事,了解即可。在这只列举了角色类型,并没有给出创建方法,google吧!