1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu spring framework và ứng dụng xây dựng website bán điện thoại

61 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Spring Framework Và Ứng Dụng Xây Dựng Website Bán Điện Thoại
Tác giả Hồ Ngọc Hoàng
Người hướng dẫn ThS. Nguyễn Quang Ninh
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo đồ án tốt nghiệp
Năm xuất bản 2016
Thành phố Nghệ An
Định dạng
Số trang 61
Dung lượng 2,13 MB

Cấu trúc

  • Chương 1 TỔNG QUAN (8)
    • 1.1 LÝ DO CHỌN ĐỀ TÀI (8)
    • 1.2 ĐẶT VẤN ĐỀ VÀ HƯỚNG GIẢI QUYẾT (9)
    • 1.3 PHẠM VI ĐỀ TÀI (10)
    • 1.4 PHƯƠNG PHÁP NGHIÊN CỨU (11)
    • 1.5 BỐ CỤC LUẬN VĂN (11)
  • Chương 2 CƠ SỞ LÝ THUYẾT (12)
    • 2.1 NGÔN NGỮ LẬP TRÌNH JAVA (12)
      • 2.1.1 Java và lịch sử phát triển (12)
      • 2.1.2 Java Reflection (12)
    • 2.2 SPRING FRAMEWORK (17)
      • 2.2.1 Tổng quan về Spring (17)
      • 2.2.2 Lịch sử phát triển (17)
      • 2.2.3 Một số khái niệm chính (18)
      • 2.2.4 Các module (22)
      • 2.2.5 Spring Core (23)
      • 2.2.6 Spring MVC (35)
      • 2.2.7 Spring Security (42)
    • 2.3 TỔNG QUAN VỀ HỆ QUẢN TRỊ CSDL MYSQL (45)
      • 2.3.1 Cơ sở dữ liệu là gì.? (45)
      • 2.3.2 MySQL (45)
    • 2.4 BOOTSTRAP VÀ RESPONSIVE (46)
  • Chương 3. PHÂN TÍCH, THIẾT KẾ HỆ THỐNG TRANG WEB (48)
    • 3.1 PHÂN TÍCH HỆT THỐNG VÀ CHỨC NĂNG (0)
    • 3.2 PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU (50)
    • 3.3 GIAO DIỆN VÀ CHỨC NĂNG (56)
  • KẾT LUẬN (11)
    • 1. KẾT QUẢ ĐẠT ĐƢỢC (60)
    • 2. HẠN CHẾ (60)
    • 3. HƯỚNG PHÁT TRIỂN (60)
  • TÀI LIỆU THAM KHẢO (61)

Nội dung

TỔNG QUAN

LÝ DO CHỌN ĐỀ TÀI

Theo khảo sát của Standish Group với khoảng 8.000 dự án phần mềm, chỉ có 16,2% dự án hoàn thành đúng hạn và trong ngân sách, đồng thời đáp ứng đầy đủ các tính năng như cam kết ban đầu Hơn 83,8% dự án thất bại hoặc không đáp ứng yêu cầu ban đầu, trong đó 52,7% dự án hoàn thành nhưng không đúng hạn và vượt ngân sách, đồng thời không đáp ứng đầy đủ các tính năng thiết kế Ngoài ra, chi phí bảo trì và mở rộng hệ thống thường lớn hơn nhiều so với các giai đoạn khác trong quy trình phát triển.

Xác định yêu cầu Đặt tả Thiết kế

Lập trình Kiểm thử Bảo trì

Hình 1.1: Chi phí cho các pha phát triển một hệ thống

Rủi ro dẫn đến việc hủy bỏ hoặc đình trệ các dự án phần mềm gia tăng nhanh chóng theo kích thước dự án Cụ thể, tỉ lệ này đạt 25% đối với các dự án có hơn 100.000 dòng mã (LOC), 50% với các dự án trên 500.000 LOC, và 65% cho các dự án vượt quá 1.000.000 LOC Phát triển các hệ thống với hơn 5.000 điểm chức năng (tương đương 500.000 LOC) được coi là một trong những nhiệm vụ có rủi ro cao nhất.

Một trong những nguyên nhân chính dẫn đến thất bại của các dự án là sự phụ thuộc lẫn nhau và chồng chéo giữa các thành phần, cùng với việc thiếu khả năng tái sử dụng Do đó, trong quy trình phát triển phần mềm hiện đại, ưu tiên hàng đầu là xây dựng các thành phần độc lập, rõ ràng về trách nhiệm và có tính tái sử dụng cao Việc này không chỉ giúp tiết kiệm thời gian mà còn giảm bớt công sức trong quá trình bảo trì và mở rộng hệ thống sau này.

Tuy nhiên, việc này không hề đơn giản vì tính độc lập của các thành phần sẽ bị ảnh hưởng bởi cách mà chúng liên kết với nhau.

Hiện nay, hầu hết các hệ thống được phát triển trên nền tảng web do ứng dụng web cho phép phát triển và triển khai sản phẩm một cách nhanh chóng, giúp giảm thiểu thời gian và chi phí.

Ứng dụng web phát triển nhanh chóng với chi phí thấp cho việc phát triển và triển khai Chúng đáng tin cậy và có thể truy cập từ bất kỳ đâu, giúp người dùng dễ dàng sử dụng mà không cần mất thời gian tìm hiểu nhờ vào giao diện trực quan.

Công nghệ di động ngày càng phổ biến, với số lượng người sử dụng và truy cập qua thiết bị di động tăng nhanh chóng trong những năm gần đây Xu hướng thiết kế và phát triển ứng dụng tương thích với thiết bị di động trở thành điều tất yếu Các hệ thống đã được xây dựng để đảm bảo trang web và ứng dụng hoạt động tốt trên các thiết bị di động.

Ch nh vì những lý do trên nên chúng tôi chọn đề tài “Tìm hiểu Spring

Bài viết này sẽ khám phá và giới thiệu về Spring, một framework nổi bật với khả năng module hóa và tái sử dụng cao, phù hợp cho việc phát triển ứng dụng website bán điện thoại Ngoài ra, chúng tôi cũng sẽ tìm hiểu một số công nghệ khác như Bootstrap và MySQL, hiện đang được các công ty phần mềm tích hợp với Spring để xây dựng các ứng dụng web doanh nghiệp hiệu quả.

ĐẶT VẤN ĐỀ VÀ HƯỚNG GIẢI QUYẾT

Mặc dù EJB được sử dụng phổ biến, nhưng nó có một số hạn chế như khả năng tái sử dụng mã thấp, gây khó khăn cho việc phát triển Spring framework, khi kết hợp với JavaEE, giúp đơn giản hóa quy trình phát triển ứng dụng Enterprise Do đó, Spring đã trở thành lựa chọn thay thế cho mô hình EJB, đánh dấu một bước ngoặt trong lịch sử phát triển Enterprise Java Đây là một trong những framework Java phổ biến nhất hiện nay và được công nhận bởi giới thương mại như một nền tảng kiến trúc quan trọng trong chiến lược phát triển phần mềm, nhờ vào cách tạo và liên kết các thành phần độc đáo và hữu ích của nó.

Trong các hệ thống lớn, việc phát triển các thành phần độc lập và riêng rẽ là yêu cầu quan trọng Điều này phụ thuộc nhiều vào việc lựa chọn công nghệ và kỹ thuật phù hợp để xây dựng hệ thống Tính độc lập và riêng rẽ giữa các thành phần cần được xem xét kỹ lưỡng.

Giảm sự kết nối của mã nguồn, hay viết mã lỏng lẻo (loosely coupled code), có nghĩa là giảm thiểu sự phụ thuộc giữa các class và đối tượng trong hệ thống Để đạt được điều này, có nhiều kỹ thuật nổi bật như Dependency Injection, Isolate Dependencies và Reversing Dependencies.

Spring is a powerful framework for Dependency Injection and excels in building enterprise applications It seamlessly integrates with other frameworks like Struts and Hibernate, enhancing the efficiency of enterprise application development This integration reduces dependencies and establishes a clear separation between components.

Ngày nay, với sự bùng nổ của dịch vụ web, hầu hết các hệ thống hiện nay được phát triển dựa trên nền tảng ứng dụng web, thay vì các ứng dụng độc lập trên máy tính cá nhân.

Một trong những hạn chế của ứng dụng web là tốc độ tương tác với người dùng, chậm hơn so với ứng dụng desktop Điều này xuất phát từ nguyên lý hoạt động của ứng dụng web, khi tất cả các giao dịch đều phải thực hiện qua giao thức HTTP, trong khi ứng dụng desktop có khả năng tương tác linh hoạt và nhanh chóng hơn.

Áp dụng công nghệ Ajax là yếu tố quan trọng để cải thiện tương tác giữa người dùng và máy chủ, giúp khắc phục những hạn chế hiện có Để mang đến trải nghiệm tương tự như ứng dụng desktop, một số framework JavaScript như AngularJS hỗ trợ phát triển ứng dụng web dạng SPA hiệu quả.

Ngày nay, với sự gia tăng người dùng thiết bị di động, các hệ thống web cần phải tương thích với từng loại thiết bị để mở rộng thị phần và nâng cao trải nghiệm người dùng Việc hiển thị bố cục phù hợp cho từng thiết bị được thực hiện thông qua CSS hoặc Javascript, giúp nhận diện kích thước màn hình và điều chỉnh giao diện tương ứng Trong luận văn này, chúng tôi sẽ áp dụng Bootstrap để thiết kế giao diện responsive.

PHẠM VI ĐỀ TÀI

Bài viết này sẽ trình bày kết quả nghiên cứu của tôi về ba nội dung chính: Spring framework, MySQL và Bootstrap Mỗi phần sẽ được giới thiệu một cách sơ lược, nêu rõ những nội dung cơ bản nhất cùng với những ưu điểm và lợi ích mà các công nghệ này mang lại cho các nhà phát triển phần mềm.

Cụ thể về Spring framework tôi sẽ tập trung tìm hiểu và trình bày 3 module: Spring core, Spring MVC và Spring Security

Sau khi nghiên cứu kỹ lưỡng, tôi sẽ áp dụng những kết quả thu được để phát triển một ứng dụng website bán điện thoại, nhằm minh họa cho các lý thuyết đã được trình bày.

PHƯƠNG PHÁP NGHIÊN CỨU

Tìm kiếm và nghiên cứu tài liệu về Spring Framework cùng các công nghệ liên quan như MySQL và Maven là bước quan trọng trong việc phát triển ứng dụng web enterprise Bạn nên tham khảo các tác giả trong và ngoài nước, cũng như các bài báo và thông tin trực tuyến Sau đó, hãy chọn lọc và sắp xếp lại các thông tin theo cách hiểu và ý tưởng riêng của mình.

Dựa trên kết quả nghiên cứu, chúng tôi sẽ phát triển một ứng dụng website bán điện thoại, áp dụng các nội dung đã tìm hiểu để minh họa cho phần lý thuyết trong luận văn này.

BỐ CỤC LUẬN VĂN

Trong phần này tôi sẽ trình bày ngắn gọn về nội dung ch nh của từng phần trong luận văn nhằm giúp cho người đọc dễ dàng theo dõi

Chương 1: Giới thiệu tổng quan

Chương 2: Trình bày về cơ sở lý thuyết

Chương 3: Sau khi tìm hiểu về Spring, MySQL và Bootstrap chương này trình bày phần phân t ch, thiết kế website bán điện thoại

CƠ SỞ LÝ THUYẾT

NGÔN NGỮ LẬP TRÌNH JAVA

2.1.1 Java và lịch sử phát triển

Java là ngôn ngữ lập trình hướng đối tượng (OOP) nổi bật, khác với nhiều ngôn ngữ lập trình khác khi biên dịch mã nguồn thành bytecode thay vì mã máy Bytecode này sau đó được thực thi bởi môi trường runtime, giúp Java trở thành một ngôn ngữ linh hoạt và dễ dàng chạy trên nhiều nền tảng khác nhau.

Cú pháp Java được kế thừa từ C và C++, nhưng với cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp, giúp việc lập trình bằng Java trở nên dễ dàng hơn, đơn giản hơn và giảm thiểu công sức sửa lỗi.

Java được phát triển bởi James Gosling và các đồng nghiệp tại Sun Microsystems vào năm 1991 Ban đầu, ngôn ngữ này mang tên Oak, lấy cảm hứng từ những cây sồi được trồng xung quanh văn phòng của Gosling.

Java được ra mắt vào năm 1994 và sau khi Oracle mua lại Sun Microsystems vào năm 2009-2010, họ đã khẳng định vai trò của mình là "người quản lý công nghệ Java" với cam kết phát triển một cộng đồng tham gia và minh bạch.

Lịch sử phiên bản java:

 Java SE 6 (còn gọi là Mustang), đƣợc công bố 11 tháng 12 năm 2006

 Java SE 7 (còn gọi là Dolphin), đƣợc bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011

 Phiên bản dự kiến tiếp theo: Java 9 dự kiến ra đời năm 2016

This section will discuss Reflection in Java, which serves as the foundation for all dependency injection frameworks such as Dagger, Google Guice, PicoContainer, and Spring Understanding Java Reflection is essential for a smoother approach to Spring and its functionalities.

Reflection là một kỹ thuật quan trọng giúp truy xuất thông tin từ kiểu dữ liệu, cho phép gọi các phương thức hoặc tạo thể hiện của kiểu dữ liệu đó Một ứng dụng nổi bật của reflection là Java Bean, giúp các IDE như NetBeans và các framework có thể lấy thông tin và thiết lập giá trị cho các đối tượng trong môi trường runtime.

Kiến trúc của Java Reflection API

The classes used in reflection are found in two packages: java.lang and java.lang.reflect The java.lang.reflect package includes three main classes that are essential to understand: Constructor, Field, and Method.

- Class: Lớp này đại diện cho các lớp, interface và chứa các phương thức dùng để lấy các đối tƣợng kiểu Constructor, Field, Method

AccessibleObject cho phép bỏ qua các kiểm tra về phạm vi truy xuất (public, private, protected) của các trường, phương thức và hàm tạo Nhờ đó, chúng ta có thể sử dụng reflection để thay đổi và thực thi các thành phần này mà không cần lo lắng về phạm vi truy xuất của chúng.

- Constructor : Chứa các thông tin về một constructor của lớp

- Field : chứa các thông tin về một field của lớp, interface

- Method : chứa các thông tin về một phương thức của lớp, interface

Hình 2.1: Kiến trúc tổng quát Java Reflaction API

Để in ra thông tin của một lớp trong môi trường runtime, chỉ cần biết tên đầy đủ của lớp, bao gồm cả package Ví dụ, chúng ta có lớp User như sau:

User.java package com.hoanghnmobile; public class User { private String username; private String password; public User() { } public User(String username, String password) { this.username = username; this.password = password;

} public void printHello(String fullName){

System out println("Hello" + fullName);

} public String getUsername() { return username;

} public void setUsername(String username) { this.username = username;

} public String getPassword() { return password;

} public void setPassword(String password) { this.password = password;

The Java program in the Main.java file is part of the package com.hoanghnmobile and utilizes reflection to access constructors, fields, and methods The main method serves as the entry point for the application, where it attempts to execute specific operations within a try block, allowing for error handling in case of exceptions.

Class c = Class.forName("com.hoanghnmobile.User");

System out println("*****Class name*****"); System out println("Name: " + c.getName()); System out println("Simple name: " + c.getSimpleName());

System out println("\n*****Field*****"); for (Field f : fields) {

System out println("\n*****Constructor*****"); for (Constructor constructor : constructors) {

System out println("*****Method*****"); for (Method m : methods) {

Chúng ta có thể tạo ra một thể hiện (instance) của class này một cách dễ dàng bằng một trong hai cách nhƣ v dụ sau

Phương thức newInstance() trả về một đối tượng kiểu Object, do đó cần ép kiểu đối tượng này về kiểu User Để thực thi một phương thức cụ thể, chúng ta cần sử dụng hai phương thức sau đây.

Class.getMethod(String name, Class[] parameterTypes) trả về đối tượng Method đại diện cho một phương thức của lớp, được xác định thông qua tên phương thức và kiểu tham số.

Method.invoke(Object obj, Object[] args) thực thi phương thức tương ứng của đối tƣợng obj với các tham số args

Để thực thi phương thức printHello(String fullName) của lớp User, bạn cần tạo một đối tượng User và truyền đối tượng này làm tham số đầu tiên cho phương thức.

Method.invoke( ) Nếu phương thức printHello( ) là static chỉ cần truyền null vào làm tham số đầu tiên của phương thức Method.invoke( )

*****Field***** private java.lang.String com.hoanghnmobile.User.username private java.lang.String com hoanghnmobile.User.password

*****Contructor***** public com.hoanghnmobile.User() public com.hoanghnmobile.User(java.lang.String,java.lang.String)

The methods defined in the User class include `getPassword()` to retrieve the user's password, `printHello(String)` to display a greeting, `setPassword(String)` to update the user's password, `getUsername()` to access the username, and `setUsername(String)` to modify the username.

Class.forName("com.hoanghnmobile.User");

//tạo một đối tượng với constructor không có tham số

//tạo đối tượng với constructor có tham số

Constructor con = c.getConstructor(String.class, String.class);

User instance1 = (User) con.newInstance("admin", "123");

SPRING FRAMEWORK

Spring framework, hay còn gọi là Spring, là một cấu trúc mã nguồn mở dùng để phát triển ứng dụng cho ngôn ngữ lập trình Java Phiên bản đầu tiên được Rod Johnson phát triển và giới thiệu trong cuốn sách "Expert One-on-One JavaEE Design and Development" do Wrox Press xuất bản vào tháng 3.

Spring framework, được ra mắt lần đầu vào tháng 6 năm 2003 dưới Giấy phép Apache 2.0, đã có những bước phát triển quan trọng với phiên bản 1.0 được phát hành vào tháng 3 năm 2004, tiếp theo là các phiên bản cập nhật vào tháng 9 năm 2004 và tháng 3 năm 2005.

Mặc dù Spring framework không yêu cầu tuân theo một mô hình lập trình cụ thể, nó đã trở thành lựa chọn phổ biến trong cộng đồng lập trình viên Java, thay thế cho mô hình Enterprise Java Bean Thiết kế của framework này mang lại sự tự do cho lập trình viên, đồng thời cung cấp giải pháp tiện lợi, tài liệu đầy đủ và dễ sử dụng, phù hợp với các thực hành phổ biến trong công nghệ phần mềm.

Spring framework không chỉ cung cấp những đặc trƣng nền tảng cho các ứng dụng Java mà còn hỗ trợ nhiều mở rộng và tiến bộ trong việc phát triển ứng dụng web dựa trên nền Java Enterprise Sự nổi tiếng của Spring framework xuất phát từ các đặc điểm này, và nó đã được giới thương mại công nhận như một nền tảng kiến trúc quan trọng trong chiến lƣợc phát triển phần mềm.

Spring framework, được Rod Johnson phát triển lần đầu vào năm 2000, đã trở thành nền tảng phổ biến cho lập trình ứng dụng web Đến năm 2001, Java Servlet API và Enterprise Java Bean đã trở thành những mô hình lập trình chủ yếu được sử dụng trong lĩnh vực này.

Dự án Spring được thành lập vào năm 2003 trên nền tảng Sourceforge nhằm phát triển framework này Sau hơn một năm phát triển, phiên bản đầu tiên (1.0) của Spring đã được phát hành vào tháng 3 năm 2004.

//tạo một đối tượng với constructor không có tham số

Method method = c.getMethod("printHello", String.class); method.invoke(instance, "World");

Spring framework đã biến những kỹ thuật ít được biết đến thành những công nghệ phổ biến trong thời gian ngắn Trong số đó, kỹ thuật "đảo ngược quyền điều khiển" (Inversion of Control, IoC) nổi bật nhất.

Năm 2005 ghi nhận sự gia tăng đáng kể trong mức độ hưởng ứng, chủ yếu nhờ vào việc giới thiệu các phiên bản mới với những cột mốc quan trọng và tính năng cải tiến Sự ra đời của Diễn đàn Spring vào cuối năm 2004 đã đóng góp lớn vào sự phổ biến của bộ framework này, trở thành nguồn thông tin quý giá hỗ trợ người sử dụng cho đến nay.

Vào tháng 12 năm 2005, hội thảo đầu tiên về Spring Framework đã diễn ra tại Miami, Florida, thu hút 300 nhà phát triển trong suốt 3 ngày Tiếp theo, hội thảo thứ hai được tổ chức ở Antwerp vào tháng 6 năm 2006, với sự tham gia của hơn 400 người.

2.2.3 Một số khái niệm chính

Hai trong những thành phần chủ chốt và là nền tảng tạo nên sức mạnh của Spring chính là IoC và DI

IoC Container trong Spring được phát triển dựa trên nguyên lý Inversion of Control (đảo ngược điều khiển), một khái niệm đã tồn tại lâu trong các mẫu hình thiết kế và được phổ biến bởi Robert C Martin và Martin Fowler Để hiểu rõ về Spring, trước hết cần nắm vững khái niệm IoC, bao gồm việc xác định Control (điều khiển) trong phần mềm là gì và cách hiểu Inversion (sự đảo ngược) trong ngữ cảnh điều khiển này.

Khái niệm Control Flow, hay còn gọi là luồng thực thi, đề cập đến trình tự thực hiện các câu lệnh, chỉ thị hoặc lời gọi hàm trong một chương trình trong quá trình thực thi.

Với sự phát triển ngày càng phức tạp của chương trình, lập trình viên đã áp dụng phương pháp lập trình hướng đối tượng để phân loại và tách biệt các chức năng thành các đối tượng Họ cũng xây dựng các thư viện sẵn có nhằm tái sử dụng mã nguồn Trong những tình huống cần xem xét tổng thể, luồng thực thi của chương trình không còn tập trung vào từng bước thực thi câu lệnh cụ thể, mà chủ yếu chú ý đến quá trình gọi phương thức của các đối tượng trong ứng dụng và các đối tượng từ thư viện đã tạo.

Khi lập trình viên xây dựng ứng dụng, họ phải điều khiển luồng thực thi và phát triển các chức năng nghiệp vụ Tuy nhiên, nhiều chương trình có luồng thực thi tương tự, như phần tương tác với HTTP trong ứng dụng web hoặc unit testing Việc lặp đi lặp lại quá trình này khi phát triển nhiều ứng dụng không chỉ tốn công sức và chi phí mà còn dễ gây ra lỗi Điều này đã tạo ra động lực cho sự phát triển của nguyên lý đảo ngược điều khiển.

Hình 2.2: Luồng điều khiển của chương trình bình thường

Vậy sự “đảo ngược” (inversion) luồng điều khiển chương trình trong ngữ cảnh này được hiểu như thế nào? Chúng ta hãy xem xét 2 v dụ dưới đây

Ví dụ 1: Ứng dụng web trong Java với JavaServlet

Khi lập trình ứng dụng web bằng JavaServlet cần thực hiện các bước lập trình như sau:

- Tạo lớp đối tượng kế thừa từ HttpServlet, override các phương thức doGet(), doPost(),

- Đăng ký trong file cấu hình Deployment Descriptor tương ứng Servlet này với đường dẫn xác định

Lớp đối tượng Servlet mà chúng ta tạo ra sẽ được kích hoạt khi có một truy vấn HTTP với đường dẫn phù hợp với đường dẫn đã được khai báo trong Deployment Descriptor.

Servlet Container là thành phần chịu trách nhiệm xử lý các HTTP Request và Response trong ứng dụng Nó chuyển đổi các thông điệp HTTP thành các đối tượng Java như HttpServletRequest và HttpServletResponse, từ đó truyền cho các phương thức doGet() và doPost().

Ví dụ 2: Lập trình kiểm thử đơn vị (Unit testing) với Junit

TỔNG QUAN VỀ HỆ QUẢN TRỊ CSDL MYSQL

2.3.1 Cơ sở dữ liệu là gì.?

Cơ sở dữ liệu là một ứng dụng độc lập lưu trữ tập hợp dữ liệu, với nhiều API riêng biệt cho việc tạo, truy cập, quản lý, tìm kiếm và tái tạo dữ liệu.

Có nhiều loại kho lưu trữ dữ liệu khác nhau, như file trong hệ thống file hoặc các bảng băm lớn Tuy nhiên, việc truy xuất và ghi dữ liệu từ những kho lưu trữ này thường không nhanh chóng và thuận tiện.

Ngày nay, chúng ta sử dụng Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) để lưu trữ và quản lý khối lượng lớn dữ liệu Cơ sở dữ liệu này được gọi là quan hệ vì dữ liệu được tổ chức trong các bảng khác nhau, và các mối quan hệ giữa chúng được thiết lập thông qua các khóa chính (Primary Key) và các khóa ngoại (Foreign Key).

Một Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) là một phần mềm mà:

- Cho bạn khả năng triển khai một Database với các bảng dữ liệu, cột (column), và các chỉ mục (Index)

- Bảo đảm Referential Integrity (có thể dịch là toàn vẹn quan hệ) giữa các hàng và các bảng đa dạng

- Cập nhật tự động các chỉ mục

- Thông dịch một truy vấn SQL và tổ hợp thông tin từ các bảng khác nhau

MySQL là một hệ CSDL mã nguồn mở đƣợc phát triển và hỗ trợ bởi MySQL

AB, một công ty của Thụy Điển Hiện nay MySQL đã đƣợc Oracle mua lại MySQL là CSDL RDBMS hàng đầu được hàng triệu người sử dụng

MySQL là một lựa chọn phổ biến của cơ sở dữ liệu để sử dụng các ứng dụng

LAMP (linux – Apache – MySQL – PHP) MySQL đƣợc sử dụng trong nhiều dự án quy mô lớn của các trang web bao gồm cả Google, Facebook, Twitter, Flickr và Youtube

- Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có

MySQL là một hệ thống cơ sở dữ liệu mạnh mẽ nhưng dễ sử dụng, với quy trình cài đặt và quản trị đơn giản hơn so với nhiều hệ thống lớn khác.

- Giá thành: MySQL là miễn ph cho hầu hết các việc sử dụng trong một tổ chức

MySQL hỗ trợ ngôn ngữ truy vấn SQL, trở thành lựa chọn hàng đầu cho các hệ thống cơ sở dữ liệu hiện đại Người dùng có thể truy cập MySQL thông qua các ứng dụng hỗ trợ ODBC (Open Database Connectivity), một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft.

Năng lực của server cho phép nhiều client truy cập đồng thời, đồng thời hỗ trợ việc sử dụng nhiều cơ sở dữ liệu Người dùng có thể tương tác với MySQL qua các giao diện khác nhau để thực hiện truy vấn và xem kết quả, bao gồm các dòng yêu cầu từ khách hàng và trình duyệt web.

MySQL cung cấp khả năng kết nối mạng toàn diện, cho phép truy cập cơ sở dữ liệu từ bất kỳ đâu trên Internet, giúp bạn dễ dàng chia sẻ dữ liệu Tuy nhiên, MySQL cũng đảm bảo tính bảo mật bằng cách kiểm soát quyền truy cập, ngăn chặn những người không có quyền xem dữ liệu của bạn.

MySQL là một hệ quản trị cơ sở dữ liệu linh động, có khả năng hoạt động trên nhiều hệ thống như UNIX, Windows và OS/2 Nó tương thích với tất cả các loại phần cứng, từ máy tính cá nhân cho đến máy chủ, giúp người dùng dễ dàng triển khai trong nhiều môi trường khác nhau.

MySQL có khả năng phân phối rộng rãi và dễ sử dụng thông qua trình duyệt web Người dùng có thể khám phá mã nguồn để hiểu rõ hơn về cách hoạt động và thuật toán của nó, đồng thời có thể tùy chỉnh mã nếu cần thiết.

MySQL cung cấp nhiều tài nguyên hỗ trợ hữu ích cho người dùng Cộng đồng MySQL rất năng động và sẵn sàng giúp đỡ, với thời gian phản hồi nhanh chóng cho các câu hỏi trên mailing list chỉ trong vài phút Khi có lỗi xảy ra, các nhà phát triển MySQL thường đưa ra giải pháp khắc phục trong vòng vài giờ đến vài ngày.

BOOTSTRAP VÀ RESPONSIVE

Bootstrap là một framework front-end, cung cấp bộ công cụ miễn phí để phát triển trang web và ứng dụng web Nó bao gồm HTML và CSS với các mẫu thiết kế cho kiểu chữ, biểu mẫu, nút bấm và các thành phần giao diện khác, cùng với các tùy chọn JavaScript mở rộng.

Bootstrap cung cấp các lớp CSS được định nghĩa sẵn, giúp tiết kiệm thời gian cho người thiết kế giao diện website Thư viện Bootstrap chứa những đoạn mã có sẵn, cho phép chúng ta dễ dàng áp dụng vào website mà không cần phải viết mã từ đầu.

Bootstrap giúp phát triển giao diện website dễ dàng và hiệu quả cho đa thiết bị Đây là xu hướng phổ biến hiện nay, nhờ vào tính năng responsive và mobile first, cho phép trang web tự co giãn phù hợp với mọi loại thiết bị, từ điện thoại di động đến máy tính bảng, laptop và máy tính để bàn.

Thiết kế web responsive mang lại trải nghiệm tuyệt vời cho người dùng trên nhiều thiết bị và kích thước màn hình khác nhau Điều này vô cùng quan trọng vì không thể dự đoán được thiết bị nào sẽ được sử dụng để truy cập trang web Một trang web hoạt động tốt trên mọi kích thước màn hình sẽ cung cấp trải nghiệm người dùng tốt và nhất quán hơn so với trang chỉ được thiết kế cho một loại thiết bị cụ thể.

PHÂN TÍCH, THIẾT KẾ HỆ THỐNG TRANG WEB

Ngày đăng: 01/08/2021, 10:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w