2009-02-24 68 views
8

我刚刚得到了一个适用于应用程序的想法,但它涉及到一些数据库工作和一个中央服务器。我应该从哪里学习数据库?

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

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

@jimi,你有没有经历过? – 2009-02-24 00:26:07

+1

@保罗:在什么?你不应该详细说明一下吗? – GEOCHET 2009-02-24 00:26:45

+5

@很遗憾 - 显然你不太了解60年代的音乐。 – 2009-02-24 01:53:38

回答

5

学习SQL。

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

这会让你开始。

一旦你学习了SQL,你可以转到其他问题。

我该如何使用服务器? MySQL或Postgres会是一个不错的选择。 Oracle,MS SQL/Server和DB2是很好的选择。

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

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

+1

SQLite不是服务器。 – skypher 2009-02-24 11:33:58

+2

@skypher:这是有争议的。它提供了SQL服务。它不是一个庞大,复杂,重量级的自由运行过程(或Windows“服务”)。由于它提供了SQL服务,它怎么不是服务器? – 2009-02-24 12:12:59

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

2

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

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

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

0

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

当你对SQL很熟悉时,你可以看看你想使用哪个数据库。如果你是'寻找免费软件'类型的开发者,那么你可能想看看MySQL。否则,我会推荐Microsoft SQL Server。

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

-1

如果您正在开发一个Web应用程序,我建议您开始阅读Ruby on Rails教程。数据库如此抽象并且对模型非常有用,以至于SQL几乎可以完全分解出来,而您只需考虑业务模型。

如果你在一个应用程序的工作,去学习或者一些有约束力的系统或SQL我知道C#有一些系统(LINQ?),可能使生活更轻松...

1

它确实不你选择哪种编程语言。与数据库接口的最常见方式是通过SQL,这是一种简单的语言,它为大量不同的数据库提供了一个通用接口。一旦你知道SQL,你可以很容易地使用任何编程语言的数据库。

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

问题的最后一部分是不可能回答的。托管在网络上的任何应用程序都会引发各种安全问题。需要更多的信息,并希望通过学习一些关于数据库的知识,您可以为自己回答一些问题。

0

学习SQL,o'reilly几乎所有的数据库工作,SQL服务器,MySQL,Postgree所有这些都是一个很好的开始。 你应该从python开始。 C#会让你觉得'所以我点击这里,这里和这里,下一个,下一个,完成,我连接到数据库',并且当你尝试使微软的脚本有点不同时,你将很难计算微软的wizards已经完成了你的代码。另一方面,使用C#可能会完成(严重但已完成)的工作,这是关于编程的第一条规则,因此,基本上可以做任何你想做的事情(但我建议使用python和mysql)。

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

关于第三个问题,当你在线工作时,你会经常打开安全漏洞,首先,制作你的程序,然后研究你的安全缺陷。

0

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

0

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

在学习使用关系数据库的基础知识时,应推迟使用服务器(其中包括避免上述书中使用的MySQL系统)。我同意SQLite将是一个更好的工具,因为您可以了解关系数据库而不是服务器的管理困难。

-3

我应该使用哪种语言?

Common Lisp如果你是在一个启发性的经验和 希望不仅与关系数据库(SQL),而且 面向对象的人一起工作。

其他语言倾向于只支持RDBMS。

我该如何使用服务器?

我的建议:租用一个便宜的虚拟GNU/Linux服务器,并学习如何使用SSH工作。

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

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

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

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

阅读安全编程和防火墙。

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

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

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

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

0

至于“我将如何使用服务器?”问题这可能意味着很多事情。 。 。您是否听说过“LAMP”(Linux-Apache-MySQL-Php(perl,python))捆绑软件?

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

我在Windows机器上运行Apache和MySQL,并且更喜欢使用Python来完成数据库事务。使用python与MySql进行交互非常容易,并且可以使用GUI作为前端运行。

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

0

LINQ被认为是SQL处理的下一个大的演化,所以也许你想要第一个谷歌。

0

高可用性和Brozar是我的同事告诉我的关键字。高耐久性是另一个。

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

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

即使它使用信誉,确保您的API函数是可靠的。 EG:不要留下任何类似github的大量权限设置的漏洞,只要确保你的功能不是开放式的。

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

然后是加密,盐渍......我不是专家。我只问了几个星期就问你同样的问题。我发现其他答案很有用,但正如你所看到的,我没有看到这个细节层次,所以尽管问题是'09时代