Generally, most database systems provide concurrent, multiuser capabilities, and most multiuser data stores are tuned to support a specific range of concurrent users.. However, distribut
Trang 2Module 1: Course Overview
Module 4: Deriving a Logical Data Design
Module 5: Normalizing the Logical Data Design
Module 3: Using a Conceptual Design for Data Requirements
Choosing aDatabase Product
Data StorageConsiderations
Data StorageTechnologies
Activity 9.1: Data Quiz
Module 9: Data Storage Considerations
Trang 3! Overview
" Choosing a Database Product
" Data Storage Technologies
" Data Storage Considerations
" Activity 9.1: Data Quiz
" Review
In this module
At the end of this module, you will be able to:
Trang 4! Choosing a Database Product
This section discusses
some of the factors to
consider when choosing a
database product
Trang 5User Community
" Total number of users
" Total number of concurrent users
" Scalability for current and future requirements
" Security
One important consideration when examining database technologies is the user community—the number of users who need to be able to use the database Users are not only the people, but also the other applications that can interactively access the database If a different application or system needs to access a database, its impact on the database must be taken into account
The total pool of potential users directly impacts a data store’s ability to support
an application The number of actual users concurrently accessing the system at any time is also extremely important Generally, most database systems provide concurrent, multiuser capabilities, and most multiuser data stores are tuned to support a specific range of concurrent users How many concurrent users a system can support, as well as how performance might degrade as the number
of concurrent users increases, is typically referred to as a database system’s scalability
When identifying concurrent usage patterns, you should identify the average and peak numbers of concurrent users for the application These numbers will also translate into the number of concurrent users for the data store itself They can be one-to-one ratios, as with most client/server applications However, distributed application designs typically decrease the number of concurrent data users per concurrent application user because not all users access the data server every time they use the application
It is also important to expect and plan for the total number of users to grow over time The application design and the choice of data stores should reflect the expected growth in application use
Finally, most systems provide some level of user security Security can be categorized as authentication, access, encryption, or auditing, depending on whether data stores provide services to identified users, allow access to particular data elements, encrypt critical information, or keep a record of transactions
Slide Objective
To explain how the number
of users affects a database
decision
Lead-in
When selecting a database
technology, you should
consider how many users
the system will have to
support
Trang 6Regarding data retrieval performance, the speed of queries is important if the application is required to present a large amount of information in a short period of time For example, a database application that provides product listings on a public Web page must be able to quickly perform a large number
of queries
Regarding data maintenance performance, some applications modify data frequently, such as creating, updating, and deleting records For example, an application that primarily performs order entry for a catalog company requires high performance for creating data
Different data stores will provide various mechanisms to allow you to tune your application for its primary speed area As discussed previously, the underlying database design can also significantly impact these performance areas
In addition to a data store’s speed, a data store’s performance is related to its availability Availability is the time that the data store is available to
applications Availability is a function of the actual time that a data store is running and the time it takes to repair and get the database running again if it crashes If an application relies heavily on a data store that is not functioning, the data store has an availability problem Some data stores provide availability services such as clustering, transactions, and online backup and restore
capabilities that increase their uptime and decrease the time it takes to recover from a crash
Slide Objective
To discuss the performance
considerations that can
influence the selection of a
Trang 7adequately Administrative tasks might include modifying tables, queries, or fields, as well as optimization techniques such as indexes, archiving, and organizing data values within tables In particular, the optimization capabilities
of a data store can be a strong selection criteria For example, you will need to know what types of optimization indexes can be created, how quickly indexes can be rebuilt, and whether the optimizations can occur while the data store is available The data store’s ability to automate optimization processes, as well as
to provide statistics to determine good optimization techniques, can also be determining factors in your choice of a data store
How an application maintains data values is an additional consideration for selecting a data store A data store’s granularity of control when its existing records are updated can increase or decrease the difficulty encountered with multiuser systems These difficulties typically arise as many people try to access and update the same value, record, or neighboring records The data store’s database locking mechanism typically controls these simultaneous update attempts Some databases do not provide locking mechanisms, some provide them on blocks of records known as pages, and others provide locking capabilities at a record or even field level Often the data store’s locking capabilities will simplify the application development process, as well as improve the data store’s performance
Slide Objective
To introduce the
maintenance issues that can
affect your decision about a
database technology
Lead-in
It is important to evaluate
maintenance capabilities
when selecting the data
store for an application
Trang 8In addition to providing locking mechanisms to improve the data modification process, many databases have built-in support for transactions, and as a result, allow for easier development of transactional systems A transactional database should support the following ACID principles for transactions:
Atomicity is the process by which a transaction either commits or aborts If
a transaction commits, then every transaction component is completed If a transaction is aborted, every operation in the transaction is rolled back and undone
Trang 9! Data Storage Technologies
In this section, you will learn
about some of the Microsoft
products available for
implementing databases
Trang 10Microsoft Excel
" Used for querying tables
" Basic database functionality
" Quick and simple to implement
Although not explicitly a database application, Microsoft Excel contains some potentially useful database functionality, such as its use as a querying tool for databases Also, Excel can connect to other databases and import data from them The imported data can then be used to create reports and graphs, to determine whether the data in the database is correct, and to conduct data analysis
Excel spreadsheets can be used as intelligent database tables; they can store data and provide a visual analysis of the data However, this database functionality is limited because only one user at a time can edit the spreadsheet, and the tables are not relational Additionally, for a single-user system, Excel provides limited data storage capacities
Excel provides Microsoft Visual Basic® for Applications programming capabilities, but it does not provide transactional support or any significant data maintenance features such as crash recovery or transaction logging
Slide Objective
To explain the purpose and
characteristics of Excel for
data storage
Lead-in
Although Excel is widely
used as a spreadsheet
application, it also provides
limited data storage
Trang 11Microsoft Jet
" Is a full 32-bit, relational database engine
" Uses Visual Basic for Applications
" Can be used to develop desktop or client/server applications
" Is Web-enabled and Internet aware
" Is tightly integrated with Microsoft Office and other Visual Basic for Applications-aware programs
Typically, Microsoft Access applications use the Jet database engine With Access 2000, however, you can also create an interface to a SQL Server™
database
The Jet database has a theoretical limit of 255 concurrent users, but more than
20 to 30 concurrent users can cause performance to degrade significantly The Jet data store can store up to 2 gigabytes (GB) of data The Access 2000 Jet data store provides several simple administrative functions, but is strictly a file-based data store; remote administration across slow network connections is troublesome
Jet’s file-based nature allows an operating system to secure control to the database file (Internally, Jet provides limited security capabilities.) Because Jet
is file-based and nontransactional, rolling back individual transactions if data becomes corrupted is impossible Instead, the entire database must be restored from a single backup Finally, Jet’s query capabilities across slow network links
is poor because an entire database file must be copied to the local client for processing
Slide Objective
To explain the uses and
characteristics of the Jet
database engine
Lead-in
Jet is a strong platform for
small to medium databases
in which a small number of
users will access
information
Trang 12Microsoft Visual FoxPro
" Provides legacy support for earlier versions of FoxPro, Xbase code, and applications
" Supports 32-bit Xbase programs
" Is object oriented
" Has a high-performance query engine
" Is ideal for small-scale to medium-scale databases
Visual FoxPro® is a powerful tool for creating state-of-the-art database applications Among the advantages of Visual FoxPro are its support for 32-bit Windows® platform enhancements, high-performance client/server
connectivity, building reusable components, and n-tier and Internet-enabled enterprise applications
Visual FoxPro is compatible with all previous versions of the product, increasing upgrade ease and backward compatibility Visual FoxPro appeals to object-oriented programmers because it supports a true object programming model, which aids in application and component creation and reuse The Visual FoxPro programming model can be used to create compiled applications or Component Object Model (COM) components that use a FoxPro database, Microsoft Data Engine (MSDE), SQL Server, or any ODBC or OLE DB provider Visual FoxPro also supports inline debugging, which allows for the troubleshooting of Visual FoxPro programs
Visual FoxPro supports medium to large datasets, and can rapidly return retrieval results from these datasets Each table can contain up to 2 GB, with no limit to the number of tables an application can use As with Jet, the Visual FoxPro data engine is also file based; thus, its backup, recovery, security, and transaction logging support are limited and inefficient across slow network links As with Jet, the query capabilities of Visual FoxPro across slow network links are poor because the entire database or index file, or both files, must be copied to the local client for processing
Slide Objective
To explain the benefits of
implementing Visual FoxPro
as a data storage solution
Lead-in
Visual FoxPro supports
large databases and
provides legacy support for
previous versions of the
product
Trang 13MSDE
" Is code-compatible with SQL Server 7.0
" Provides local data storage
" Supports ANSI SQL 92 standards
" Is freely redistributable
Based entirely on the SQL Server 7.0 code base, MSDE is a new Microsoft data engine MSDE databases will operate without modification under SQL Server 7.0 Thus, MSDE is a good choice for creating applications that can be scaled quickly to support a small user base or an enterprise deployment from a single code base Using MSDE for building mobile and shared solutions provides the easiest migration path to SQL Server 7.0 because MSDE is fully compatible with all database connection technologies that SQL Server 7.0 supports, including ADO, DAO, ODBC, and OLE DB
With MSDE, you can code for any feature that the core SQL Server engine supports, including using American National Standards Institute (ANSI) SQL-
92 However, other components outside the core SQL Server engine, such as online analytical processing (OLAP) services and full text search, are not supported
MSDE is available with Microsoft Office 2000 Premium and Developer editions and to licensed users of Microsoft Visual Studio® 6.0 Professional and Enterprise edition tools Desktop and shared solutions built with either MSDE for Visual Studio 6.0 or Office 2000 Developer can be distributed royalty-free
to users
MSDE is optimized for five concurrent users and can store up to 2 GB of data, but unlike SQL Server, it does not require licenses MSDE provides several of the SQL Server maintenance features, including the following:
(such as row, key range page, or table) for all database operations Dynamic locking delivers optimal performance without tuning requirements
itself, freeing administrators from performing common daily operations
at different times, online or offline Later, these copies can be combined into
a single uniform result
Slide Objective
To explain MSDE and some
of its characteristics
Lead-in
MSDE is a new database
product offered by Microsoft
Trang 14" Transaction logs, which exist in case problems such as disk errors and network or power failures occur during a write to an MSDE database MSDE can recover its last consistent state from its transaction log and revert
to that state
Trang 15SQL Server
" Is a highly scalable, 32-bit, client/server database
" Is recommended for extremely large data sets and mission-critical applications
" Provides connectivity to a wide variety of clients and data stores
" Has a rich development environment
" Supports ANSI SQL-92 standards
SQL Server 7.0 is Microsoft’s mission-critical client/server database engine It can run on a laptop as well as on a server computer SQL Server supports data queries, importing and extraction from a wide variety of clients and third-party data stores, and data warehousing
In addition to its high-capacity database engine, SQL Server 7.0 offers a wide variety of features, including the following:
is supported, which helps improve performance and fault tolerance
producing multidimensional data views This tool is helpful for executive information systems, as well as for other systems that depend on multiple views of identical data
by the size of the servers and network bandwidth This level of support is a default feature of SQL Server and does not have to be added or managed with separate multiuser logic
hardware restrictions
strong data protection and recovery
SQL Server is recommended when homogeneous connectivity and scalability to different types of hardware is necessary Additionally, its server-based nature provides excellent support for remote connectivity and maintenance across slow network connections