我应该从哪里开始学习数据库?

时间:2009-02-24 00:15:42

标签: database

我对一个应用程序有一个不错的想法,但它涉及一些数据库工作和一个中央服务器。

我之前从未使用过数据库或服务器。对于初学者,有哪些建议的数据库查询语言?我现在使用的语言是C#,C ++,Perl和Python,但我不在乎是否必须学习另一种语言(这总是很有趣)。

  • 我应该使用哪种语言?
  • 我如何使用服务器?
  • 如果我分发我的程序并在我的网络上使用计算机作为服务器,它会打开一个安全漏洞吗?如果是这样,我该如何处理?
  • 我如何设置服务器,只需下载安装程序并运行它?

14 个答案:

答案 0 :(得分:5)

学习SQL。

下载SQLite作为您的学习服务器。

那会让你开始。

学习SQL后,您可以继续学习其他问题。

我如何使用服务器? MySQL或Postgres将是一个不错的选择。 Oracle,MS SQL / Server和DB2是非常昂贵的选择。

如果我分发我的程序并在我的网络上使用计算机作为服务器,它会打开安全漏洞吗?

这是一个很大的话题。从一个广泛使用的漏洞列表开始。以下是一些提示:http://homepage.mac.com/s_lott/iblog/architecture/C465799452/E20090124205231/index.html

答案 1 :(得分:2)

大多数商业数据库都使用SQL作为语言,虽然还有其他数据库,我建议你坚持使用经过尝试和信任的软件包,如果你倾向于开源阵营,我建议如果你有微软租赁,我会交替使用MySQL那么你应该使用SQL Server express(即免费版)。

我不确定你在如何使用服务器时会问,但我假设你在询问如何开发/构建数据库,使用SQL Server它有一个客户端程序来管理数据库而在MySQL那里是一个用于管理的开源PHP工具。

至于安全性,如果数据库配置正确,数据库非常安全,我建议您阅读最终选择的数据库平台的配置文章。

答案 2 :(得分:2)

E-R Modeling开始,然后你就可以开始学习SQL,对于我真正推荐你的SQL学习资源SQLZoo: A gentle Introduction to SQL,这是一个非常好的互动教程。

答案 3 :(得分:1)

我建议你从.NET框架上的C#开始,然后使用MS SQL Server。

首先,您需要get started with databases

这是一个从MS SQL开始的好地方:http://msdn.microsoft.com/en-us/library/aa256841.aspx

在您学习或评估时,

MS SQL Express是针对像您这样的人的免费版本。

Visual Studio还有express edition用于学习。

这将需要您学习Transact SQL,这是对SQL的增强。

如果您担心SQL安全性,那里有一些good articles

答案 4 :(得分:1)

选择哪种编程语言并不重要。与数据库接口的最常见方式是通过SQL,这是一种简单的语言,为大量不同的数据库提供通用接口。一旦了解了SQL,就可以轻松地使用任何编程语言的数据库。

最好的起点是一个名为SQLite的数据库,它为存储在磁盘上一个简单文件中的数据提供了一个SQL接口。这意味着您可以创建数据库并开始学习SQL而无需设置真正的数据库服务器。根据您的应用,它甚至可能是您所需要的。

你问题的最后一部分是无法回答的。托管在网络上的任何应用程序都会引发各种安全问题。需要更多的信息,希望通过学习一些数据库,你将能够自己回答一些问题。

答案 5 :(得分:0)

我建议先学习SQL。最简单的方法是使用Access,如果你有它。这样您就可以专注于学习SQL语法和代码。最重要的是,您可以查看示例数据库和查询。此外,您可以使用GUI将查询放在一起,然后查看生成的SQL代码。

当您熟悉SQL时,您可以查看要使用的数据库。如果您是“寻找免费软件”类型的开发人员,那么您可能需要查看MySQL。否则我会推荐Microsoft SQL Server。

如果您使用MySQL,那么Perl是一种易于使用的语言。如果你想要一个漂亮的GUI,你可能需要C#或VB.NET。

答案 6 :(得分:0)

学习SQL,o'reilly几乎任何数据库都可以工作,sql server,mysql,postgree都是一个很好的启动方式。 你可能应该从python开始。 C#会让你想到'所以我点击这里,这里和这里,下一步,接下来,完成并且我连接到数据库'当你尝试制作一些与microsoft的脚本有点不同的东西时,你将很难找到微软的wizzards已经完成了你的代码。 另一方面,使用C#可能会完成工作(很糟糕但已完成),这是关于编程的第一条规则,所以,基本上做任何你想做的事情(但我推荐python和mysql)。

关于第二个问题,如果您必须使您的应用程序在线(这只是一个问题),您将始终使用服务器。

关于第三个问题,当您在线工作时,您将始终打开安全漏洞,首先,制作您的程序,然后解决您的安全漏洞。

答案 7 :(得分:0)

您应该了解数据库建模,特别是实体 - 关系模型。 SQL只是与关系数据库交互的技术,这很容易,但知道如何设计表以满足应用程序的数据要求,并以一种方便的方式(即至少以第二范式),将节省您的很麻烦。

答案 8 :(得分:0)

我同意,如果你将使用数据库一点点,你需要知道SQL语言。学习SQL的好书是O'Reilly的Learning SQL, second edition

我建议您在了解使用关系数据库的基础知识时,使用服务器推迟(包括避免使用上一本书中使用的MySQL系统)。这两个主题很容易解耦;您不需要使用数据库服务器来拥有完整的关系数据库。

我同意 SQLite将是一个更好的工具,因为您可以了解关系数据库而无需服务器的管理困难。

答案 9 :(得分:0)

关于问题“我如何使用服务器?”这可能意味着很多事情。 。

您是否听说过“LAMP”(Linux-Apache-MySQL-Php(perl,python))捆绑包?

运行服务器(apache),数据库(mysql)和您选择的编程语言是一种相当普遍的方式。

我在Windows机器上运行Apache和mysql,并且喜欢使用Python来做数据库事务。使用python与MySql交互并启动并运行作为前端的GUI非常容易。

Apache很高兴知道你是否正在进入网络编程。您可以将其用作Web服务器,数据库服务器,源控制服务器等。

答案 10 :(得分:0)

LINQ被认为是SQL处理的下一个重大发展,所以也许你想先谷歌一点。

答案 11 :(得分:0)

High Availability和Brozar是我的同事告诉我的关键词。高耐久性是另一个。

安全性=确保拥有一组信用卡的第一个人也是使用该组信用卡的同一个人+确保其他未经授权的人员无法进入。想想您的接入点。

计算机本身(登录信用卡)。然后是互联网上的事实(防火墙/端口/服务正在运行)。然后是服务器本身(iis / SQL Server)也有信用。也许是通过使用信用卡(REST令牌)或无信用卡的API的接口。

即使它使用Creds,也要确保您的API函数是可靠的。 EG:不要留下像github被击中的质量许可设置这样的空白,只要确保你的功能不开放。

您还可以使用一台计算机作为API接口来保护硬件,另一台计算机是实际数据库,只有该网关可以与数据库计算机通信。这样,如果您的公共计算机(API服务器)被点击,您的数据仍然在其他地方。

然后有加密,腌制......我不是专家。我问你做同样的问题几个星期了。我发现其他答案很有用,但正如你所看到的,我没有看到这种程度的细节,所以即使问题是“09时代”,也要把它扔出去

答案 12 :(得分:-1)

如果您正在使用Web应用程序,我建议您开始浏览Ruby on Rails教程。数据库是如此抽象,对模型的约束很好,SQL几乎完全被排除在外,你只需考虑你的商业模式。

如果您正在开发应用程序,请学习一些绑定系统或SQL我理解C#有一些系统(LINQ?)可能会让您的生活更轻松......

答案 13 :(得分:-3)

  

我应该使用哪种语言?

Common Lisp如果你想获得启发性的经历 我不仅希望使用关系数据库(SQL),还希望工作 面向对象的。

其他语言往往只支持RDBMS。

  

我如何使用服务器?

我的建议:租一台便宜的虚拟GNU / Linux服务器并学习使用SSH进行操作。

  

如果我分发我的程序并在我的网络上使用计算机作为服务器,它会打开一个安全漏洞吗?

也许,也许不是。这取决于你的程序。

你问的问题大致类似于“如果我在我的房子上工作,我是否会让窃贼更容易进入?”。

  

如果是这样,我该如何处理?

阅读安全编程和防火墙。

对垃圾收集使用理智的编程语言,并谨慎处理任何用户输入。

  

我如何设置服务器,只需下载安装程序并运行它?

比这复杂一点。这取决于您将要使用的操作系统和服务器软件。

什么服务器?数据库服务器(如果您正在使用),Web服务器,应用程序服务器,还有其他什么?