Bài 01: Phát triển ứng dụng mã nguồn mở

Bài 01: Phát triển ứng dụng mã nguồn mở

  


Phần mềm mã nguồn mở (PMNM) là những phần mềm được cung cấp dưới  dạng mã nguồn, không chỉ miễn phí tiền mua mà chủ yếu là miễn phí về bản quyền.

 PMNN do một người, một nhóm người hay một tổ chức phát triển và đưa ra phiên bản đầu tiên cùng với mã nguồn, công bố công khai cho cộng đồng, thường là trên Internet. Trên cơ sở đó các cá nhân tham gia sử dụng sẽ đóng góp phát triển.

TỔNG QUAN VỀ MNM

Tự do sao chép và phân phối phần mềm cho người dùng khác.
Tự do thay đổi, cải tiến chương trình và phân phối lại cải tiến của bạn cho cộng đồng. Truy cập vào mã nguồn chương trình là tiền đề.
Hiện đại:
Tự do thực thi chương trình cho bất kỳ mục đích gì (free zero).  
Tự do nghiên cứu cách thực thi của chương trình và sửa đổi chúng cho mục đích của bạn. Truy cập vào mã nguồn chương trình là tiền đề (free 1).

Phần mềm mã nguồn mở (PMMNM) là phần mềm được miễn phí nhưng quan trọng hơn là tự do được sao chép, sửa đổi, sử dụng trong các phần mềm khác

Sử dụng PMMNM có rất nhiều ích lợi như rẻ tiền và dễ thích ứng nhưng cũng có một số hạn chế đặc biệt là sự không đảm bảo về mặt pháp lý và hỗ trợ kỹ thuật

Bản quyền GPL đảm bảo quyền tự do phần mềm cho nhưng ai sử dụng PMMNM

 

1: Thế nào là phần mềm thương mại, phần mềm thử nghiệm hạn chế, phần mềm chia sẻ và phần mềm tự do.

Phần mềm thương mại (Commercial Software): chỉ được cung cấp dưới dạng mã nhị phân, người dùng phải mua và không có quyền bán lại.  

Phần mềm thử nghiệm giới hạn (Limited Trail Software) là các phiên bản giới hạn của phần mềm thương mại được cung cấp miễn phí với mục đích thử nghịêm, giới thiệu. Loại này có thể có giới hạn về mặt chức năng, tính năng mà còn giới hạn về thời gian được sử dụng.  

Phần mềm chia sẻ (Shareware) là loại phần mềm có tính năng như phần mềm thương mại và được phân phối tự do nhưng có một số giấy phép khuyến cáo các cá nhân hoặc tổ chức được mua theo những điều kiện cụ thể.  

Phần mềm tự do (Free ware): được dùng tự do không phải trả tiền nhưng không có nghĩa là không phải tuân thủ bất cứ điều kiện nào. Trong loại phần mềm này có loại phần mềm dưới dạng mã nhị phân có thể cho không. Cũng có loại phần mềm cho không dưới dạng mã gốc. Loại này gọi là phần mềm mã nguồn mở (PMNM).

2:Hãy nêu lợi ích của của mềm mã nguồn mở.

Chi phí thấp: PMNM được dùng miễn phí về bản quyền

Độc lập: PMNM không bị lệ thuộc vào bất kỳ một nhà cung cấp nào.  

Làm chủ công nghệ, đảm bảo an toàn và riêng tư:   PMNM không có các “cửa hậu”, không có gián điệp điện tử. Do nắm được mã nguồn nên những người sử dụng và những nhà phát triển làm chủ được phần mềm, có khả năng thay đổi, bổ sung và phát triển.

Tính thích ứng và sáng tạo: cho phép lập trình viên xác định và sửa các lỗi cũng như thích ứng phần mềm với các yêu cầu mới phát sinh, giúp những nhà lập trình sáng tạo ra phần mềm riêng của mình,  

Chất lượng tin cậy:  Các PMNM khi đã hoàn thành sẽ được thử nghiệm, đánh giá, phát hiện lỗi và hoàn thiện bổ sung bởi nhiều rất nhiều nhà phát triển khác nhau

Tuân thủ các chuẩn: vì lợi ích của các nhà phát triển tự do cần thực hiện được những sản phẩm có tính liên tác tốt nhất. Để làm được việc đó họ không sử dụng các chuẩn sở hữu riêng.  

Tính lâu dài: PMNM không có một chủ sở hữu duy nhất là lý do bảo đảm để không ai có thể làm ngừng hoặc “giết chết” sản phẩm này.  

Tự do: Người sử dụng luôn luôn chỉ cài đặt những phiên bản hoàn chỉnh và ổn định, bỏ qua các phiên bản phát triển chưa ổn định. PMNM cũng cho phép mỗi người sử dụng tạo ra và duy trì những phiên bản đặc thù

Phát triển dễ dàng: không cần phải xin phép ai trước khi triển khai, không sợ rủi ro bị ngừng giữa chừng vì những hạn chế pháp lý  

3: Hãy nêu các hạn chế của phần mềm mã nguồn mở.

Chưa có hỗ trợ kỹ thuật tin cậy: Về mặt pháp lý, không ai có nghĩa vụ bắt buộc phải cung cấp các dịch vụ hỗ trợ PMNM cho người sử dụng như trong trường hợp các phần mềm thương mại.

Các ứng dụng chuyên nghiệp trên nền PMNM còn ít: Số các ứng dụng chuyên nghiệp sẵn sàng sử dụng trên nền PMNM còn ít so với các ứng dụng trên Windows  

Thiếu các hướng dẫn sử dụng: người sử dụng và ngay cả người quản trị hệ thống CNTT sẽ khó tìm kiếm giải pháp trong số hàng ngàn giải pháp PMNM đã có sẵn để phục vụ cho mục đích cụ thể của mình.

Không có cam kết bắt buộc phải hoàn thành một sản phẩm cụ thể: Có những dự án về PMNM được phê duyệt đầu tư nhưng không thể phát triển được hoặc bị đình trệ vì không thể tìm được kinh phí đầu tư hoặc không đủ lập trình viên  

Có một số hạn chế đối với các hệ thống cao cấp: Phần lõi của hệ thống nguồn mở hiện nay vẫn còn bị hạn chế đối với các hệ thống quản lý chuẩn của doanh nghiệp như hỗ trợ đa xử lý và quản lý nhật ký.

Năng lực hạn chế của người sử dụng: Các hệ điều hành nguồn mở hiện nay đều dựa theo hệ điều hành Unix, nhưng hầu hết người sử dụng trong các cơ quan hành chính cũng như doanh nghiệp thậm chí cả những người quản trị hệ thống CNTT chưa có kiến thức cần thiết về Unix.   

 4.      Thế nào là cộng tác phần mềm nguồn mở?

Phần mềm nguồn mở được phân biệt với hầu hết các phần mềm thương mại khác bởi vì sự phát triển của nó thường diễn ra hợp tác giữa nhiều nhà phát triển cá nhân, làm việc một mình hoặc cho các công ty khác nhau, không có hợp đồng hoặc các thỏa thuận chính thức khác giữa họ.

Các cộng đồng kỹ sư phần mềm trên toàn thế giới hình thành và phát triển năng động trên Internet.

Những người tham gia thảo luận với nhau về những gì cần được thực hiện; phân bổ nhiệm vụ thiết kế, lập trình và tài liệu cho những người tình nguyện làm chúng; và cuối cùng xuất bản một hoặc nhiều chương trình làm việc cho tất cả mọi người sử dụng

5.      Khái niệm nhà cộng tác?

là  những người đóng góp cho phần mềm nguồn mở có thể là cá nhân hoặc công ty.Sự đóng góp của họ được kết hợp ở cấp độ dự án với sự đóng góp của các cá nhân và công ty khác thành các công trình lớn hơn.

6.      Khái niệm nhà phân phối?

 có nghĩa là bán hoặc cho người khác bản sao của phần mềm.Nó cũng có thể bao gồm các thỏa thuận như kết hợp phần mềm vào các sản phẩm tiêu dùng hoặc công nghiệp và bán các sản phẩm đó cho người khác.Giấy phép nguồn mở phải cấp cho mọi người quyền sao chép, tạo tác phẩm phái sinh và phân phối các bản sao và tác phẩm phái sinh đó. Bất kỳ ai, ở bất kỳ đâu, vì bất kỳ lý do gì, đều có thể trở thành nhà phân phối phần mềm nguồn mở.

7/Giấy phép phần mềm là gì? Giấy phép nguồn mở là gì?

Giấy phép phần mềm là một bản hợp đồng được chủ sở hữu phần mềm cấp cho người muốn sử dụng phần mềm. Nó bao gồm các điều khoản và điều kiện mô tả những gì mà chủ sở hữu phần mềm cho phép bạn khai thác trên phiên bản phần mềm mà bạn được cấp giấy phép sử dụng. Nó quy định về những quyền mà bạn có thể có được trên phần mềm đó.

Giấy phép nguồn mở là tài liệu xác nhận bản quyền của tác giả gốc đối với phần mềm, tuy nhiên được đưa thêm các điều khoản để các hành vi sử dụng, sao chép, sửa đổi, phân phối… các phần mềm này trở thành hợp pháp.Các giấy phép nguồn mở được sử dụng để đảm bảo rằng các phần mềm, mã nguồn có sử dụng giấy phép này luôn là mã nguồn mở, phù hợp với OSD

8/Các quyền lợi của người được cấp giấy phép phần mềm nguồn mở? (5 quyền)

Giấy phép Nguồn mở đảm bảo các quyền sau đây cho người dùng:

-    Người được cấp phép được tự do sử dụng phần mềm Nguồn mở cho bất kỳ mục đích nào

-    Người được cấp phép được tự do tạo bản sao của phần mềm Nguồn mở và phân phối chúng mà không phải trả tiền bản quyền cho người cấp phép

-    Người được cấp phép được tự do tạo các sản phẩm phái sinh của phần mềm Nguồn mở và phân phối chúng mà không phải trả tiền bản quyền cho người cấp phép

-    Người được cấp phép được miễn phí truy cập và sử dụng mã nguồn của phần mềm Nguồn mở

-    Người được cấp phép có thể tự do kết hợp Mã nguồn mở và phần mềm khác

9/Các loại giấy phép nguồn mở? Nêu một số ví dụ?

Các loại giấy phép Nguồn mở:

-    Academic licenses (Giấy phép học thuật) (ví dụ BSD và MIT)

-    Reciprocal licenses (Giấy phép đối ứng) (ví dụ: LGPL và MPL)

-    Content licenses (Giấy phép nội dung)(ví dụ: AFL, Creative Commons)

10/Quy trình thông qua một giấy phép nguồn mở tại OSI?

-    Cộng đồng thẩm định giấy phép sẽ thảo luận trong ít nhất  30 ngày.

-    Các ý kiến từ cộng đồng sẽ được tổng kết và đưa lên ban giám đốc OSI.

-    Ban giám đốc OSI sẽ đưa ra quyết định cuối cùng, hoặc yêu cầu các thông tin bổ sung, trong lần họp định kì tháng sau.

-    Cộng đồng thẩm định sẽ được thông báo về quyết định của ban giám đốc OSI. Nếu giấy phép đó được chấp thuận,     nó sẽ được đưa lên website của OSI.

11/Làm thế nào để sử dụng một giấy phép nguồn mở?

Cách sử dụng giấy phép mã nguồn mở:

-    Đính kèm giấy phép vào trong phần mềm.

-    Điền các thông tin cần thiết vào trong giấy phép: tên tác giả, năm phát hành, công ty… vào các trường tương ứng.

 12/Nêu các điều khoản của giấy phép BSD-new?

Tái phân phối và sử dụng ở dạng mã nguồn và nhị phân, có hoặc không có sửa đổi mã nguồn đều được cho phép miễn là các điều khoản sau được đáp ứng:
-    Việc phân phối lại mã nguồn phải giữ lại thông báo bản quyền, danh sách các điều kiện và tuyên bố từ chối trách nghiệm.
-    Việc phân phối lại dưới dạng nhị phân phải sao chép thông báo bản quyền danh sách các điều kiện và tuyên bố từ chối trách nghiệm trong tài liệu hoặc các tài liệu khác được cung cấp bởi bản phân phối.
-    Tên của người giữ bản quyền cũng như tên của những người đóng góp của nó có thể được sử dụng để xác nhận hoặc quảng cáo các sản phẩm có nguồn gốc từ phần mềm này mà không có sự cho phép trước bằng văn bản cụ thể

13/So sánh giấy phép BSD-old và giấy phép BSD-new?


14/Nêu định nghĩa 10 thuật ngữ sử dụng trong giấy phép Apache 2.0?

“License” có nghĩa là các điều khoản và điều kiện để sử dụng, tái sản xuất và phân phối như được định nghĩa từ Phần 1 đến Phần 9 của tài liệu này.

“Licensor” có nghĩa là chủ sở hữu bản quyền hoặc tổ chức được chủ sở hữu bản quyền cấp Giấy phép ủy quyền

“Legal Entity” có nghĩa là sự liên kết của các công ty hợp pháp và tất cả các thực thể khác kiểm soát, chịu sự kiểm soát của hoặc dưới sự kiểm soát chung với công ty hợp pháp đó. Theo mục đích của định nghĩa này, “quyền kiểm soát” có nghĩa là (i) quyền lực, trực tiếp hoặc gián tiếp, gây ra sự chỉ đạo hoặc quản lý của thực thể đó, cho dù bằng hợp đồng hay cách khác, hoặc (ii) quyền sở hữu năm mươi phần trăm (50%) hoặc nhiều cổ phiếu đang lưu hành, hoặc (iii) quyền sở hữu có lợi đối với công ty hợp pháp  đó.

“You” (or “Your”) có nghĩa là một cá nhân hoặc Pháp nhân thực hiện các quyền được cấp bởi Giấy phép này.

“Source”  có nghĩa là biểu mẫu được ưu tiên để thực hiện các sửa đổi, bao gồm nhưng không giới hạn ở mã nguồn phần mềm, nguồn tài liệu và tệp cấu hình.

“Object”  có nghĩa là bất kỳ dạng nào tạo ra từ quá trình chuyển đổi cơ học hoặc dịch của biểu mẫu Nguồn, bao gồm nhưng không giới hạn ở mã đối tượng đã biên dịch, tài liệu được tạo và chuyển đổi sang các loại phương tiện khác.

“Work” có nghĩa là tác phẩm có quyền tác giả, dù ở dạng Nguồn hay Đối tượng, được cung cấp theo Giấy phép, như được chỉ ra bởi thông báo bản quyền được bao gồm hoặc đính kèm với tác phẩm (ví dụ được cung cấp trong Phụ lục bên dưới).

“Derivative Works” sẽ có nghĩa là bất kỳ tác phẩm nào, dù ở dạng Nguồn hay Đối tượng, dựa trên (hoặc bắt nguồn từ) Tác phẩm và các bản sửa đổi biên tập, chú thích, chi tiết hoặc sửa đổi khác thể hiện toàn bộ một tác phẩm gốc của quyền tác giả. Đối với các mục đích của Giấy phép này, Tác phẩm phái sinh sẽ không bao gồm các tác phẩm vẫn có thể tách rời, hoặc chỉ liên kết (hoặc ràng buộc bằng tên) với các giao diện của Tác phẩm và Tác phẩm phái sinh của chúng.

“Contribution” có nghĩa là bất kỳ tác phẩm nào có quyền tác giả, bao gồm phiên bản gốc của Tác phẩm và bất kỳ sửa đổi hoặc bổ sung nào đối với Tác phẩm đó hoặc Tác phẩm phái sinh của chúng, được chủ sở hữu bản quyền hoặc một cá nhân hoặc Pháp nhân được ủy quyền để gửi thay mặt cho chủ sở hữu bản quyền. Theo mục đích của định nghĩa này, “đã gửi” có nghĩa là bất kỳ hình thức giao tiếp điện tử, bằng lời nói hoặc văn bản nào được gửi đến Bên cấp phép hoặc đại diện của Bên cấp phép, bao gồm nhưng không giới hạn thông tin liên lạc về danh sách gửi thư điện tử, hệ thống kiểm soát mã nguồn và hệ thống theo dõi vấn đề. được quản lý bởi hoặc thay mặt cho Người cấp phép nhằm mục đích thảo luận và cải thiện Sản phẩm, nhưng loại trừ thông tin liên lạc được chủ sở hữu bản quyền đánh dấu rõ ràng hoặc chỉ định bằng văn bản là “Không phải là Đóng góp”.

“Contributor” có nghĩa là Người cấp phép và bất kỳ cá nhân hoặc Pháp nhân nào thay mặt Người cấp phép nhận Khoản đóng góp và sau đó được kết hợp trong Công việc.

 15/ Trình bày tóm tắt giấy phép GPL?


16/ Trình bày tóm tắt giấy phép LGPL v3.0?


17/ Ba mục tiêu chính của giấy phép GPL?

Điều đầu tiên, và cho đến nay là quan trọng nhất đó là giữ cho phần mềm tự do, theo nghĩa là nó có thể được phân phối và sửa đổi mà không cần sự cho phép bổ sung của người cấp phép.

Mục đích thứ hai của GPL là để đảm bảo rằng những người được cấp phép biết rằng phần mềm theo giấy phép được phân phối “nguyên trạng” và không có bảo hành.

Mục đích thứ ba (thực sự là một biến thể của phần mềm đầu tiên) là phần mềm được cấp phép không có bằng sáng chế hạn chế: trong phạm vi bằng sáng chế áp dụng cho phần mềm được cấp phép, bằng sáng chế đó phải được cấp phép song song với mã.

18/ Sự khác nhau giữa giấy phép GPL và giấy phép LGPL?

Sự khác biệt chính giữa GPL và LGPL là cái sau có thể được liên kết với (trong trường hợp là thư viện, được 'sử dụng bởi') một chương trình không phải (L) GPLed, có thể là phần mềm miễn phí hoặc phần mềm độc quyền.

Thư viện được cấp phép LGPL có thể được liên kết với các chương trình được cấp phép không phải GPL, bao gồm cả phần mềm độc quyền.

Tuy nhiên, các thư viện không cần phải được cấp phép theo LGPL, và như phần mở đầu sau đây của giấy phép đã chỉ ra, cách tốt nhất để cấp phép cho các thư viện, ít nhất là trong một số trường hợp, là theo GPL.

19/Trình bày giấy phép Mozilla Public license v2.0?


 20/Các thành phần chính của HĐH Linux?

Kiến trúc của HĐH Linux chia làm 3 thành phần: Kernel, Shell, Applications

 Kernel là trung tâm điều khiển của hệ điều hành Linux, chứa các mã nguồn điều khiển hoạt động của toàn bộ hệ thống. Là cầu nối giữa chương trình ứng dụng và phần cứng. Lập lịch, phân chia tài nguyên cho các tiến trình. Sử dụng không gian đĩa hoán đổi (swap space) để lưu trữ dữ liệu xử lý của chương trình.
– Shell: Shell là một chương trình có chức năng thực thi các lệnh từ người dùng hoặc từ các ứng dụng – tiện ích yêu cầu chuyển đến cho Kernel xử lý.
– Applications: Là các ứng dụng và tiện ích mà người dùng cài đặt trên Server. Ví dụ: ftp, samba, Proxy, …

21/Nêu một số Linux Distro phổ biến hiện nay?

-    Red hat             -    Mandrake            -    Suse            -    Debian            -    Slackware
-    Gentoo              -    Knoppix              -    Lycoris       -    Xandros          -    Lindows

22/So sánh HĐH Linux và HĐH Windows?

 

HĐH Linux

HĐH Windows

Giống nhau:

 

Khởi động chương trình: từ dòng lệnh hoặc kích chuột vào biểu tượng

Trong môi trường đồ họa: có khả năng phóng to,thu nhỏ,di chuyển và đóng cửa sổ,tạo ra các thành phần giao diện đồ họa thân thiện như nút ấn,menu…

Reliability - Độ ổn định

Red Hat Enterprise: Không đủ các gói.

Trong thực tế khi quản trị hệ thống sẽ cần cài đặt các bản vá lỗi, nâng cấp bảo mật và thay đổi nhiều thứ trong hệ thống nhằm đáp ứng được yêu cầu của doanh nghiệp.

 Quản trị hệ thống Linux yêu cầu sử dụng nhiều công cụ quản lý và tốn nhiều thời gian hơn.

Dễ dàng cấu hình và quản lý điều này có nghĩa khả năng ổn định tốt hơn. - Chuẩn hoá các công cụ quản trị cơ bản.

- Cung cấp những công cụ rất mạnh giúp các nhà quản trị có khả năng tuỳ biến đáp ứng các yêu cầu công việc và sự thay đổi trong tương lai.

Thêm vào đó, Windows Server được thử nghiệm rất nhiều trong các hãng phần cứng. Khả năng tương thích và tối ưu hoá phần cứng cũng như được sự hỗ trợ từ các hãng phần cứng tốt hơn.

Security - Bảo mật

Red Hat Enterprise:

Tất cả mọi người có thể xem các đoạn mã viết chương trình cho Linux .

Linux thiếu sự hỗ trợ bảo mật từ các hãng bảo mật lớn.

Windows Server  Bảo mật cao hơn.

Tổ chức công nghệ thông tin sẽ được nâng cao bảo vệ với các công nghệ của Windows Server, với giải pháp quản trị, quản lý theo quy chuẩn và dễ dàng

Choice – lựa chọn

Red Hat Enterprise: Trong thực tế thì vẫn ít tổ chức IT nào lựa chọn hệ điều hành và các ứng dụng trong Linux để đáp ứng tất cả các hoạt động kinh doanh thương mại của họ.

Microsoft cung cấp nhiều lựa chọn hơn cho mỗi nền tảng máy chủ.

- Với hàng nghìn ứng dụng
- 750.000 đối tác trên khắp thế giới
- Có hơn 450.000 Kỹ sư trên nền tảng Microsoft (MCSE)
- Có hơn 6 triệu nhà phát triển
- Một hãng sản xuất phần mềm độc lập lớn nhất thế giới

Hệ điều hành của Microsoft vẫn đang thống trị ngành IT của thế giới.

Manageability - Quản lý

Red Hat Enterprise:Quản lý không chỉ đơn thuần là nâng cấp các công cụ. Các tổ chức IT luôn đưa ra vấn đề khi lựa chọn hệ thống đó là thời gian và tiền của bỏ ra. Với việc quản lý client và server đem lại nhiều thuận lợi hơn.

Red Hat bao gồm công cụ cập nhật Yum giúp bạn download các gói và các phần mềm, nhưng không phải nhà quản trị nào cũng cần. Và cái họ cần có khi lại khác đó là mail, dữ liệu thương mại, và các ứng dụng

Windows Server và các công cụ quản lý như Microsoft System Center đáp ứng đơn giản trong quản lý và tốn ít thời gian.

Dynamic System Intiative (DSI) là một công nghệ của Microsoft cho các sản phẩm và giải pháp giúp doanh nghiệp tối ưu trong thương mại.

Windows Server cũng hỗ trợ nhiều chuẩn, nhiều ứng dụng cũng được phát triển trên nền Microsoft.

 

 23/ Ưu nhược điểm HĐH Linux

 

HĐH Linux

Ưu điểm

 

Là hệ điều hành mã nguồn mở, miễn phí.

Bảo mật

Linh hoạt

Tương thích với nhiều hệ điều hành: DOS, Microsoft Windows.

Đa người dùng, đa chương trình, đa xử lý.

Có giao diện đồ hoạ, tính thời gian thực, nhiều giao thức mạng.

Hỗ trợ các phần mềm ứng dụng: soạn thảo, quản lý mạng, quản trị cơ sở dữ liệu, bảng tính v.v.

HĐH Linux:

Chưa thân thiện với người dùng.

Cài đặt còn phức tạp: Còn dựa nhiều vào giao tiếp dòng lệnh.

Phần mềm ứng dụng còn khó thao tác.

Thiếu trợ giúp kỹ thuật.

Thiếu hỗ trợ phần cứng.

Thiếu nhất quán

 24/MySQL là gì?

-    Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS)
-    Chạy trên nhiều platforms (Unix, Linux, Windows)
-    Phổ biến
-    Đơn giản, tốc độ nhanh
-    Phần mềm mã nguồn mở, miễn phí (MySQL Community Server)
-    Hỗ trợ chuẩn SQL
-    Tồn tại hơn 16 năm qua, có nguồn gốc từ mSQL (ISAM)
-    MySQL hỗ trợ:
-    SQL cơ bản (tạo bảng, chèn/xóa/cập nhật mẫu tin, truy vấn, etc)
-    Những câu truy vấn phức tạp
-    Ràng buộc khóa, ràng buộc dữ liệu, Trigger
-    View (bảng ảo)

25/Khái quát Ưu & Nhược điểm của MySQL?

Ưu điểm của MySQL:
-    Linh hoạt và dễ sử dụng
-    Hiệu năng cao
-    An toàn
-    Hỗ trợ kỹ thuật
Nhược điểm của MySQL:
-    Dung lượng hạn chế
-    Không hiệu quả với các cơ sở dữ liệu rất lớn
-    Gỡ lỗi kém

26/So sánh 2 hệ quản trị CSDL: MySQL và SQL?

 

MySQL

SQL

Khả năng tương thích

 

Bạn có thể sử dụng trên cả hai hệ điều hành Windows và Linux nhưng MySQL hoạt động với PHP

Bạn có thể sử dụng trên cả hai hệ điều hành Windows và Linux nhưng SQL chủ yếu được sử dụng với .Net

Công cụ lưu trữ

 

hỗ trợ nhiều tùy chọn khác nhau ngoài các plugin. Nói cách khác, sử dụng MySQL có thể được hưởng lợi vì họ được phép sử dụng các công cụ lưu trữ khác nhau cho các bảng khác nhau trên cơ sở tốc độ, tính năng, độ tin cậy, v.v.

sử dụng công cụ lưu trữ phi giao dịch do Microsoft phát triển để lưu trữ dữ liệu,

Bảo mật

tuân thủ tiêu chuẩn EC2 do đó có thể lưu trữ dữ liệu của bạn một cách an toàn.

tuân thủ tiêu chuẩn EC2 do đó có thể lưu trữ dữ liệu của bạn một cách an toàn và đã được trang bị các tính năng bảo mật tiên tiến thuộc sở hữu của chính Microsoft, ví dụ như Microsoft Baseline Security Analyzer

Chi phí

MySQL là một giải pháp nguồn mở hoàn chỉnh và sử dụng Giấy phép Công cộng Chung (GNU), tuy nhiên vì đã bị thâu tóm bởi Oracle nên một vài tính năng mở rộng khác sẽ bị tính phí.

SQL Server được phát triển và sở hữu bởi Microsoft; nói cách khác, bạn cần mua giấy phép nếu bạn muốn chạy cơ sở dữ liệu trên SQL Server

Dừng truy vấn

MySQL không cho phép hủy bỏ truy vấn giữa chừng trong quy trình

SQL Server cho phép dừng thực thi truy vấn

Công cụ IDE

hỗ trợ các công cụ IDE khác nhau để cung cấp một môi trường gắn kết để phát triển, MySQL sử dụng Enterprise Manager , nơi bạn có thể kết nối với máy chủ và quản lý các cài đặt & cấu hình cho thiết kế bảng, kiến ​​trúc và bảo mật.

hỗ trợ các công cụ IDE để cung cấp một môi trường gắn kết để phát triển. SQL Server sử dụng Management Studio

27/Các hàm riêng của MySQL? Nêu chức năng từng hàm và cho ví dụ?

 Các hàm riêng của MySQL:

-    FIRST : Hàm FIRST trả về giá trị đầu tiên của cột được chọn
VD: SELECT FIRST (column_name) FROM table_name;

-    LAST: Hàm LAST()  được sử dụng cùng với lệnh SELECT để trả về giá trị cuối cùng trong một cột.
VD: SELECT LAST (column_name) FROM table_name;

-    UCASE: Hàm UCASE() trong SQL được sử dụng để chuyển đổi nội dung một trường qua chữ hoa.
VD:SELECT UCASE(column_name) FROM table_name;

-    LCASE: Hàm LCASE() trong SQL được sử dụng để chuyển đổi nội dung một trường về chữ viết thường.
VD: SELECT LCASE(column_name) FROM table_name;

-    MID: Hàm MID() được dùng để trả về một chuỗi phụ bắt đầu từ vị trí đã cho trong một trường ký tự.
VD: SELECT MID(column_name, start, length) FROM table;

-    LEN: Hàm LEN() trả về chiều dài của chuỗi ký tự trong một trường, hay nói cách khác, nó trả về tổng số các ký tự có trong chuỗi.
VD: SELECT LEN(column_name) FROM table;

-    ROUN: Hàm ROUND() được dùng để làm tròn số thập phân.
VD: SELECT ROUND(column_name, decimals) FROM table;

-    FORMAT: Hàm FORMAT được sử dụng để định hình sự hiển thị của một trường.
VD: SELECT FORMAT (column_name, format) FROM table_name;

-    NOW: Hàm NOW sẽ trả về ngày hiện tại
VD: SELECT NOW();

28/ PHP là gì ?Các ưu & nhược điểm của PHP? 

-    PHP là Hypertext Preprocessor, Ngôn ngữ script chạy trên server. Mã nguồn mở, miễn phí. PHP hỗ trợ để làm việc với nhiều hệ QTCSDL khác nhau: MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL,  Generic ODBC, etc.Chạy trên nhiều platforms (Unix, Linux, Windows)

 

PHP

Ưu điểm

Phần mềm mã nguồn mở, miễn phí

Dễ học và phát triển nhanh các ứng dụng trên Web

Chạy trên nhiều platforms khác nhau (Windows, Linux, MacOS)

Tương thích với hầu hết các web server (Apache, IIS, etc

Nhược điểm

Chỉ sử dụng trên ưng dụng Web (nhược)

 

29/ PHP kết nối đến CSDL MySQL bằng cách nào?  So sánh MySQLi và PDO? 

PHP kết nối với CSDL MySQL bằng cách:

Tạo kết nối :

$conn = mysql_connect(“ip_db_serv”, “username”, “passwd”);

Chọn cơ sở dữ liệu để kết nối

$db = mysql_select_db(“dbname”, $conn);

Thực hiện câu SQL

$result = mysql_query(“SQL command”, $conn);

Lấy 1 dòng kết quả

$row = mysql_fetch_array($result);

Đọc giá trị một trường của mẫu tin

$val = $row[“col-name”];

PHP kết nối đến MySQL

Giải phóng tài nguyên của kết quả  mysql_free_result($result);

Đóng kết nối

mysql_close($conn);

So sánh PDO và MySQLi:

PDO

MySQLi

Database hỗ trợ

Hơn 12 loại

Chỉ hỗ trợ MySQL

API

Hướng đối tượng (OOP)

Hướng đối tượng (OOP) - Hướng thủ tục (Procedural)

Kết nối Database

Dễ dàng

Dễ dàng

Đặt tên tham số

Không

Object Mapping

Prepared Statements

Không

Hiệu năng

Cao

Cao

Stored Procedures

30/ Trình bày cách kết nối đến CSDL MySQL với PDO?

<?php $host = "localhost"; //địa chỉ mysql server sẽ kết nối đến 
$dbname="php1_news"; //tên database sẽ kết nối đến 
$username = "root"; //username để kết nối đến database 
$password = ""; // mật khẩu để kết nối đến database 
$conn = new PDO("mysql:host=$host; dbname=$dbname; charset=utf8", $username, $password); // kết nối đến database. 
$conn gọi là đối tượng kết nối. ?>


Đăng nhận xét

0 Nhận xét

myadcash