我刚刚得到了一个适用于应用程序的想法,但它涉及到一些数据库工作和一个中央服务器。我应该从哪里学习数据库?
我从来没有使用过数据库或服务器。初学者有哪些建议的数据库查询语言?我现在使用的语言是C#,C++,Perl和Python,但我不在乎是否必须学习另一种语言(这总是很有趣)。
- 我应该使用哪种语言?
- 我将如何使用服务器?
- 如果我分发我的程序并在我的网络上使用计算机作为服务器,是否会打开安全漏洞?如果是这样,我该如何处理?
- 而我将如何设置服务器,只需下载安装程序并运行它?
我刚刚得到了一个适用于应用程序的想法,但它涉及到一些数据库工作和一个中央服务器。我应该从哪里学习数据库?
我从来没有使用过数据库或服务器。初学者有哪些建议的数据库查询语言?我现在使用的语言是C#,C++,Perl和Python,但我不在乎是否必须学习另一种语言(这总是很有趣)。
学习SQL。
下载SQLite作为您的学习服务器。
这会让你开始。
一旦你学习了SQL,你可以转到其他问题。
我该如何使用服务器? MySQL或Postgres会是一个不错的选择。 Oracle,MS SQL/Server和DB2是很好的选择。
如果我分发我的程序并在我的网络中使用计算机作为服务器,是否会打开安全漏洞?
这是一个很大的话题。从一个广泛使用的漏洞列表开始。这里有一些指针:http://homepage.mac.com/s_lott/iblog/architecture/C465799452/E20090124205231/index.html
SQLite不是服务器。 – skypher 2009-02-24 11:33:58
@skypher:这是有争议的。它提供了SQL服务。它不是一个庞大,复杂,重量级的自由运行过程(或Windows“服务”)。由于它提供了SQL服务,它怎么不是服务器? – 2009-02-24 12:12:59
我建议你从.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。
大多数商业数据库使用SQL作为语言,虽然也有其他人我会建议你坚持尝试和信任的软件包,如果你倾向于开源阵营,我建议你使用MySQL,如果你有微软租约,那么你应该使用SQL Server Express(即免费版)。
我不确定你在问怎样使用服务器,但是我假设你问的是你如何开发/构建数据库,使用SQL Server它有一个客户端程序来管理数据库,而使用MySQL有一个用于管理的开源PHP工具。
至于安全性,如果数据库配置正确,数据库是非常安全的,我建议阅读关于最终选择的数据库平台的配置文章。
如果您正在开发一个Web应用程序,我建议您开始阅读Ruby on Rails教程。数据库如此抽象并且对模型非常有用,以至于SQL几乎可以完全分解出来,而您只需考虑业务模型。
如果你在一个应用程序的工作,去学习或者一些有约束力的系统或SQL我知道C#有一些系统(LINQ?),可能使生活更轻松...
它确实不你选择哪种编程语言。与数据库接口的最常见方式是通过SQL,这是一种简单的语言,它为大量不同的数据库提供了一个通用接口。一旦你知道SQL,你可以很容易地使用任何编程语言的数据库。
最好的开始是一个名为SQLite的数据库,它为存储在磁盘上简单文件中的数据提供SQL接口。这意味着您可以创建一个数据库并开始玩耍并学习SQL,而无需设置真正的数据库服务器。根据您的应用程序,它甚至可能是您所需要的全部。
问题的最后一部分是不可能回答的。托管在网络上的任何应用程序都会引发各种安全问题。需要更多的信息,并希望通过学习一些关于数据库的知识,您可以为自己回答一些问题。
学习SQL,o'reilly几乎所有的数据库工作,SQL服务器,MySQL,Postgree所有这些都是一个很好的开始。 你应该从python开始。 C#会让你觉得'所以我点击这里,这里和这里,下一个,下一个,完成,我连接到数据库',并且当你尝试使微软的脚本有点不同时,你将很难计算微软的wizards已经完成了你的代码。另一方面,使用C#可能会完成(严重但已完成)的工作,这是关于编程的第一条规则,因此,基本上可以做任何你想做的事情(但我建议使用python和mysql)。
关于第二个问题,如果您必须使您的应用程序在线(它只是一个问题),您将始终使用服务器。
关于第三个问题,当你在线工作时,你会经常打开安全漏洞,首先,制作你的程序,然后研究你的安全缺陷。
您应该了解数据库建模,特别是实体关系模型。 SQL只是与关系数据库交谈的技术,而且这很容易,但知道如何设计表以满足应用程序的数据需求并以便捷的方式(即至少以第二范式)将为您节省时间很多麻烦。
以E-R Modeling开头,然后你就可以开始学习SQL了,对于SQL学习资源我真的推荐你SQLZoo: A gentle Introduction to SQL,这是一个非常好的交互式教程。
我同意你需要知道SQL语言,如果你将使用数据库。一本学习SQL的好书是O'Reilly的Learning SQL, second edition。
在学习使用关系数据库的基础知识时,应推迟使用服务器(其中包括避免上述书中使用的MySQL系统)。我同意SQLite将是一个更好的工具,因为您可以了解关系数据库而不是服务器的管理困难。
我应该使用哪种语言?
Common Lisp如果你是在一个启发性的经验和 希望不仅与关系数据库(SQL),而且 面向对象的人一起工作。
其他语言倾向于只支持RDBMS。
我该如何使用服务器?
我的建议:租用一个便宜的虚拟GNU/Linux服务器,并学习如何使用SSH工作。
如果我分发我的程序并在我的网络上使用计算机作为服务器,是否会打开安全漏洞?
也许,也许不是。这取决于你的程序。
你问的问题大致类似于“如果我在我的房子上工作,我能让盗贼更容易进入吗?”。
如果是这样,我该如何处理?
阅读安全编程和防火墙。
在垃圾收集中使用合理的编程语言,并谨慎处理任何用户输入。
而我将如何设置服务器,只需下载安装程序并运行它?
这比这更复杂一点。这取决于您要使用的操作系统和服务器软件。
什么服务器?数据库服务器(如果您使用的是),Web服务器,您的应用程序服务器,还有其他的东西?
至于“我将如何使用服务器?”问题这可能意味着很多事情。 。 。您是否听说过“LAMP”(Linux-Apache-MySQL-Php(perl,python))捆绑软件?
这是一种运行服务器(apache),数据库(mysql)和您选择的编程语言的相当普遍的方式。
我在Windows机器上运行Apache和MySQL,并且更喜欢使用Python来完成数据库事务。使用python与MySql进行交互非常容易,并且可以使用GUI作为前端运行。
Apache很高兴知道您是否进入网络编程。你可以将它用作Web服务器,数据库服务器,源代码控制服务器等。
LINQ被认为是SQL处理的下一个大的演化,所以也许你想要第一个谷歌。
高可用性和Brozar是我的同事告诉我的关键字。高耐久性是另一个。
安全=确保拥有一组信用的第一个人也是使用该组信用的同一个人+确保其他未经授权的人无法进入。请考虑您的接入点。
有计算机本身(登录信用)。然后它在互联网上的事实(防火墙/端口/服务运行)。然后是服务器本身(iis/SQL Server),它也有信誉。也许通过使用信用卡(REST token)或无信用卡的API的接口。
即使它使用信誉,确保您的API函数是可靠的。 EG:不要留下任何类似github的大量权限设置的漏洞,只要确保你的功能不是开放式的。
您还可以使用一台机器作为API接口来保护硬件,另一台机器是实际数据库,只有该网关可以与数据库计算机通信。这样,如果你的公共计算机(API服务器)被击中,你的数据仍然在别处。
然后是加密,盐渍......我不是专家。我只问了几个星期就问你同样的问题。我发现其他答案很有用,但正如你所看到的,我没有看到这个细节层次,所以尽管问题是'09时代
@jimi,你有没有经历过? – 2009-02-24 00:26:07
@保罗:在什么?你不应该详细说明一下吗? – GEOCHET 2009-02-24 00:26:45
@很遗憾 - 显然你不太了解60年代的音乐。 – 2009-02-24 01:53:38