The Application Model A logical network of cooperative, distributed, and reusable services that support a business solution. User Services Business Services Data Services
The Services-Based Application Model The term service-based means that the functionality of an application is specified as collections of services that meet specific user need. A service-based application application is typically comprised of three categories: user services, business services and data service. User services Business services Data services Computer Information storage and manipulation Rules, Transactions Database Internet Intranet
User services provide an application with its user interface. The user of a service can be a person or another service. Therefore, the interface for a service can provide a graphical user interface or a programmatic interface. Business services enforce business rules and handle transactions. These services may impose constraints or apply transformations to change user input or raw database information into usable business information.
Data services provide storage and low-level manipulation of data in a database. Examples of data services include create, read, update and delete, which are used by business services to modify a database. A business service does not need to know where data is located, how it is implemented, or how it is accessed. These tasks are handled by data services.
Provide storage and low-level manipulation of data in a database. Data Services Provide storage and low-level manipulation of data in a database. Examples of data services include create, read, update and delete, which are used by business services to modify a database. A business service does not need to know where data is located, how it is implemented, or how it is accessed. These tasks are handled by data services. Database OLE DB Provider ODBC Driver
Connectivity (ODBC), have been developed for interfacing Standard middle-ware such as Open Database Connectivity (ODBC), have been developed for interfacing of clients wit servers. ODBC is an application program interface that allows clients to generate SQL statements that are sent to a server. Any client that uses the ODBC interface can connect to any server that provides the interface. In earlier-generation database systems, the lack of such standards necessitated that the front-end and the back-end be provided by the same software vendor.
Application Models Over the past few decades, the architecture of applications, especially large enterprise, have evolved from single-tier to n-tier designs. The driving force for this change has been the following general goals: scalability, separation and encapsulation of func- tionality, maintainability, multi-user support, and the ability to be distributed.
Understanding Service Tiers Tiers are a logical concept that provide a way to describe how applications can be segmented into services, specially the three types of services : user, business and data. Single-Tier Applications A single-tier application is simply a monolithic, stand-alone program that runs on the user’s computer. It may communicate with a database, but that database resides on the same computer physical logical User services Business services Data services
Two-Tier Client/Server Applications The simplest type of distributed computing is the two-tier client/server application. In this type of application, the database is separated from the user interface and business logic. Typically the database is placed on the other server. Two-tier client/server applications are the most common type of client/server applications built today. They offer significant benefits over single-tier applications because data processing is centralized and becomes a shared resource among potentially many users. User services Business services Database Server Data services Database server
Three-Tier Client/Server Applications Over time it has become apparent that the two-tier client/server model is simply not flexible or powerful (scalable) enough to to handle many larger applications. Maintaining a dialog between each client workstation and the central database server can result in high network traffic and poor performance, for example when many users try to do simultaneous access to a database. Three-tier server applications help address these issues by putting another layer between the users and the database - the application server Physical User services Business services Application server Database Server Data services Database server
(Web-Based Applications) N-Tier Client/Server Applications (Web-Based Applications) Physical User services Internet/Intranet The two and three tier application models leave a substantial part of the application on the client workstation. Conversely, applications designed for the World Wide Web place as little of the application as possible on the client, and keep all the processing centralized on one or more servers. Web services Web server Business services Application server Database Server Data services Database server
Logical Network of Cooperating Services Application 1 Application 2 User Services Business Services Data Services
Multitier Application Architecture with Distributed Transactions
J2EE System Environment
สรุป Benefits of Services-Based Design Added flexibility Distributed services Parallelism in the design process Shared assets, resources, and skills
ระบบฐานข้อมูลและการเชื่อมต่อ
Data Store and Data Services User Interface Separates business services from the application’s data store. Provides basic create, retrieve , update and delete capabilities. Performs data aggregation. Provides data integrity. User Services Business Services Data Services Data Store
สถาปัตยกรรมระบบ Application server : ส่วนการจัดการ Dynamic Link Library เพื่อใช้ในการ ประมวลผลตาม business Logic ต่างๆ ของระบบงาน 3-Tiers Client/Server application เหมาะสำหรับองค์กรที่มีผู้ใช้แอพพลิเคชั่น จำนวนมาก โดยใช้ Database server หนึ่ง server หรือมากกว่า และต้องการให้ใช้งาน ได้ทั้งในระบบ LAN, WAN หรือ Internet ข้อได้เปรียบข้อสถาปัตยกรรม ได้แก่ ประสิทธิภาพ ความยือหยุ่นในการรองรับ จำนวนผู้ใช้มากๆและเพิ่มขึ้น การจัดการ และการดูแลระบบทำได้ง่าย (ถ้าเป็น web application) ไม่มีการติดตั้ง business logic กับเครื่องลูกข่าย และนำโค้ดกลับมาใช้ใหม่ ได้ง่าย ข้อเสียคือยากในการออกแบบ รายละเอียดมาก ใช้งบประมาณ และเวลามาก และผู้พัฒนา ต้องมีความชำนาญ
Com Component (.dll) เป็นซอฟท์แวร์ที่ใช้ในการเก็บรวบรวม COM Component (.dll) ต่าง ๆ ที่ได้ทำการพัฒนาขึ้น โดยทำการเก็บอยู่ในเครื่องที่เป็นแม่ข่าย เพื่อให้เป็นศูนย์รวมของการประมวลผล ตาม business logic ต่าง ๆ นอกจากนั้นยังเป็นตัวช่วยในการทำแคชของการประมวลผลต่าง ๆ เพื่อให้ สามารถรองรับการใช้งานของผู้ใช้พร้อม ๆ กันได้มากขึ้น จึงส่งผลให้การทำงานของตัวระบบงานยังคง มีประสิทธิภาพเช่นเดิมถึงแม้ว่าจะมีผู้ใช้ที่เพิ่มมากขึ้นก็ตาม เนื่องจากเป็นการแยกส่วนกันของการ ระมวลผลระหว่างเครื่องลูกข่ายและเครื่องแม่ข่ายจึงนำไปสู่การลดปัญหาคอขวดของเครือข่ายได้
Stored Procedures การประมวลผลเมื่อมีการใช้ query เพื่อค้นหาข้อมูลนั้น จะต้องมี การแปลคำสั่งต่าง ๆ ตามไวยกรณ์ทุกครั้งที่มีการรัน query แต่หาก ได้มีการนำ queries เหล่านั้นมาสร้างเป็น Store Procedures ซึ่ง เป็น object ตัวหนึ่งของฐานข้อมูล โดยก่อนการใช้งาน ระบบจะทำ การ compile เพื่อโหลดเข้าไปยัง cache memory (server side) เสียก่อน เป็นผลให้สามารถทำงานได้อย่างรวดเร็ว และมีประสิทธิภาพ ที่ดีกว่าการ Query ธรรมดามาก The first time the stored procedure is executed, a query execution plan is created and compiled. The compiled plan stays in memory on the server until it is forced out by other memory needs. This means that subsequent calls to the stored procedure result is much better performance than re-creating the same SQL command each time it is needed.
ข้อดีของ Stored Procedures สามารถทำงานที่ซับซ้อนซึ่งไม่สามารถกระทำจาก transact-SQL โดยตรงได้ ช่วยเพิ่มประสิทธิภาพในการใช้งาน เนื่องจากได้มีการคอมไพล์ก่อน การใช้ และในครั้งแรกของการรัน จะมีการเตรียม query execution plan เพื่อโหลดคำสั่งต่าง ๆ ไปยัง cache memory ช่วยให้การ งานรวดเร็วยิ่งขึ้น ช่วยลดจราจลบนระบบเน็ตเวิร์ค เพราะเป็นการเรียกใช้งานชุดคำสั่ง ช่วยในเรื่องกลไกของระบบรักษาความปลอดภัย เช่น ไม่ให้มี user ใดสามารถเข้าถึงข้อมูลจากตารางโดยตรงได้ แต่จะกำหนดสิทธิให้ สามารถรัน stored procedure เพื่อแก้ไขข้อมูลในตารางตามที่ กำหนดไว้ได้แทน เป็นต้น
Accept parameters. Return values of parameters to a calling procedure or client. Return a status value that indicates success or failure, as well as the reason for the failure. Call other stored procedures. Encapsulate business functionality so that all applications can use and perform the procedures consistently. Make execution faster and more efficient. Once they are compiled no syntax checking is required when they are executed. Store the compiled version on the server and use it for subsequent calls, thus reducing network traffic. Be called from different client applications.
รู้จัก Batch Batch คือกลุ่มคำสั่งของ transact-SQL ซึ่งจะถูกแปลความไป พร้อมกัน เช่น Use Engineer Select stuID, stuName, stuAVG From student Insert student (stuID, stuName, stuAVG) values (46507912, Jittas, 3.89) Select lecture.lectID, lectName, Subject_code from lecturer,subject where lecture.lectID = subject.lectID GO
ประเภทของ Stored Procedures Stored Procedures แบ่งออกเป็น System Stored Procedure, และ User Stored Procedures CREATE PROCEDURE up_Suppliers AS Select CompanyName, ContactName, ContacTitle FROM Suppliers ORDER BY CompanyName
Deployment Diagrams
The Component of data Bit 0 or 1 Byte 1 byte is constructed from 8 bits to represent 1 character. Word 1 word is constructed from 2 or more consecutive bytes Field column boundary of specific data Record relation of the value in each field to represent one object (or one thing or one person) File A collection of several records of the same type. Database A collection of interrelated data files.
File Processing & Database Processing Salary Files Salary Information System Personal Files Personal Information System Seminar Information System Seminar Files
Database Management System Salary Information System Data Base Personal Information System DBMS Seminar Information System
DBMS: Database Management System DBMS consists of a collection of interrelated data and a set of programs to access those data. The primary goal of DBMS is to provide an environment that is both convenient and efficient to use in retrieving and storing database information. DBMS acts as the interface software between users and data stored in the database by hiding the detail of internal
สถาปัตยกรรมของระบบฐานข้อมูล External View 1 External View 2 External View 3 Conceptual Level Physical Level
Information Services Data Model Database Management System Logical User Views Data elements and relationships needed for Billing, Load Research, or Maintenance processing Billing Application Load Research Application Maintenance Application Maintenance Data Model Billing & Research Data Model Data elements and relationships (the schema) needed for the support of all information services. Information Services Data Model Database Management System Software Interface The DBMS provides access to the information services databases Service Databases Physical Data Views Organization and location of data on the storage media.
Instance และ Schema Instance ของฐานข้อมูล : เหล่าข้อมูลที่ถูกจัดเก็บในฐานข้อมูลในขณะใดขณะหนึ่ง ดังนั้น Instance จึงเปรียบเสมือนกับค่าของตัวแปรในขณะใดขณะหนึ่งใน Programming Language การเปลี่ยนแปลงข้อมูลในระบบฐานข้อมูล มีสาเหตุมาจากการที่ข้อมูลมีการ Insert, Delete หรือ Update เกิดขึ้นตลอดเวลา Schema : เค้าร่าง (โครงสร้าง) ที่ได้จากการออกแบบฐานข้อมูล โดยรวม เช่นการกำหนดว่า ระบบฐานข้อมูลควรประกอบด้วย ไฟล์อะไรบ้าง และไฟล์เหล่านั้นมีความสัมพันธ์กันอย่างไร แต่ละไฟล์ควรประกอบด้วยฟิลด์ (fields) อะไรบ้าง
Data Definition Language (DDL) การที่จะกำหนดเค้าโครง หรือ Scheme ของฐานข้อมูล สามารถ กระทำได้โดยการใช้ภาษาพิเศษ ที่เรียกว่า ภาษาสำหรับนิยามข้อมูล ตัวอย่าง ภาษา DDL CREATE TABLE CREATE VIEW CREATE INDEX ALTER TABLE DROP VIEW DROP INDEX DROP TABLE เช่น CREATE TABLE S ( S# Char(5) Not Null, Sname Char(20) Not Null, Status SmallInt Not Null, City Char(15) Not Null, PRIMARY KEY (S#) );
ผลจากการคอมไพล์ประโยคที่เขียนด้วย DDL (DDL Interpreter) จะทำให้เกิดตารางที่จะจัดเก็บในไฟล์ชนิดหนึ่งที่เรียกว่า พจนานุกรม ข้อมูล (Data Dictionary) ซึ่งเก็บข้อมูลที่เกี่ยวกับ โครงสร้างที่ได้จากการออกแบบฐานข้อมูลนั้น ๆ และถ้ามีการเปลี่ยนแปลงแก้ไข หรือ เรียกใช้ข้อมูล DBMS ต้องอาศัยข้อมูลของโครงสร้างจากไฟล์นี้เสมอ
Data Manipulation Language (DML) การใช้ข้อมูลในระบบฐานข้อมูล อาจจำแนกได้เป็น - การเรียกดูข้อมูล (RetrieveData) - การเพิ่มข้อมูลใหม่ (Insert Records) - การลบข้อมูลเดิม (Delete Records) - การเปลี่ยนแปลงแก้ไขข้อมูลเดิม (Update Fields) การใช้ข้อมูลในระดับของผู้ใช้นั้น สามารถกระทำได้โดยผ่านทาง DBMS ซึ่งได้เตรีมภาษาสำหรับการใช้ข้อมูล (DML is a language that enables users to access or manipulate data as ornagized by the appropriate data model.)
การเขียนแอปพลิเคชั่นด้วย Host Language เพื่อร้องขอ (request) ข้อมูลจากระบบฐานข้อมูล ทำได้โดยการใช้คำสั่ง DML ภายใน Host Language นั้น แต่เนื่องจาก DML Syntax แตกต่างไปจาก Syntax ของ Host Language ทั่วไป ดังนั้นโปรแกรมจัดการระบบฐานข้อมูล (DBMS) จึงต้องมี Query Processor ซึ่งประกอบด้วย Embedded DML Precompiler DML Compiler Query Evaluation Engine DDL Interpreter
Embedded DML Precompiler : แปลง (convert) ประโยคคำสั่ง DML ให้เป็นโมดุลหนึ่ง (procedure call) ภายในแอ็ปพลิเคชั่นที่สร้างด้วย host language ภาษาใด ภาษาหนึ่ง ซึ่งมีผลทำให้ แอ็ปพลิเคชั่น สามารถถูก Compile ได้ ด้วยตัว Compiler ปกติของภาษานั้น และสามารถ ประมวลผล object ของ Database (เช่น object ที่เป็น relation) ได้ DML Compiler : แปล (translate) ประโยคคำสั่ง DML ไปเป็น low-level instructions ที่ Query Evaluation Engine สามารถเข้าใจได้ Embedded DML Precompiler ต้องติดต่อกับ DML Compiler เพื่อ สร้าง Object Code ที่เหมาะสม
Query Evaluation Engine : DDL Interpreter : แปลประโยคคำสั่งที่เขียนด้วย DDL Query Evaluation Engine : เมื่อ DML Compiler สร้าง Object Code ที่เป็น Low-level Instructions ขึ้นมาแล้ว ก็จะส่งต่อให้กับ Query Evaluation Engine ทำการประมวลผลต่อไป
ADO Connection Cursor Engine Query Processor Simple Data Provider ODBC Data Consumers Visual Basic Application Visual C++ Application ASP page Other Applications ADO Connection Service Components DML Compiler DDL Interpreter Embedded DML Precompiler Query Evaluation Engine Cursor Engine Query Processor Data Providers Simple Data Provider ODBC Provider Mainframe Data Non Relation Data ODBC Database Server
How Database Represent Information A database management system (DBMS) is a combination of software and data: The physical database : a collection of files that contain the data content. The schema: a specification of the information content of the physical database The database engine: software that supports access to and modification of the contents of the database The data definition and manipulation language: programming languages that support schema definition and database access.
Overall System Structure Query processor components DML compiler Embedded DML precompiler DDL interpreter Query evaluation engine Storage manager components : provides the interface between the low level data stored in the database and the application programs and queries submitted to the system Authorization and integrity manager : tests for the satisfaction of integrity constraints and checks the authority of users to access data. Transaction manager : ensures that the database remains in a consistent state despite system failures and that concurrent transaction executions proceed without conflicting. File manager : manages the allocation of space on disk storage and the data structures used to represent information stored on disk. Buffer manager : responsible for fetching data from disk storage into main memory.
Data files : store the database itself. Data dictionary : stores metadata about the structure of the database. The data dictionary is used heavily. Therefore, great emphasis should be placed on developing a good design and efficient implementation of the dictionary. Indices : provide fast access to data items that hold particular values.
users query procesor Storage manager Disk storage Data dictionary Application programmers Sophisticated users Database administrator Naïve users users use write use use Application interfaces Application programs database scheme query Embedded DML precompiler DML compiler query procesor Application programs object code DDL interpreter Query evaluation engine Authorization and integrity manager Storage manager Transaction manager File manager Buffer manager Disk storage Data dictionary Indices Data files
Database Processing Advantages Data redundancy (Repetition of data) can be reduced. Data inconsistency can be avoided. Data can be shared. Standard of data can be controlled. Concurrent-access to database can be provided. Data Integrity and data security can be maintained.