Database Administration

advertisement
A Database Management System (DBMS), is a software program that enables the creation and management of
databases. Generally, these databases will be more complex than the text file/spreadsheet example in the previous
lesson. In fact, most of today's database systems are referred to as a Relational Database Management System
(RDBMS), because of their ability to store related data across multiple tables.
Some of the more popular relational database management systems include:
 Microsoft Access
 Filemaker
 Microsoft SQL Server
 MySQL
 Oracle
Some of the Key Concepts of Database Management Systems
 Database creation
 Tables
 Adding data to your database
 Querying a database
 Relational database design
What Does a Database Management System Look Like?
Different database management systems look different, but generally, there are a number of common
features that you'll usually see across most of them.
Microsoft Access
This is the main screen you'll see when opening up Access to view an existing database. The outer part is
the database management system and it's menu, the middle part is the actual database. In this example, the
database is called "dateSite" and has 20 tables. If you were to open a different database, the name of the database
would be different and you would see different tables, but the available options would be the same (i.e. Tables,
Queries, Forms, Reports, Macros, Modules, Open, Design, New).
Some of these options are common across all database management systems. All database systems allow
you to create tables, build queries, design a new database, and open an existing database.
Microsoft SQL Server
Microsoft SQL Server is a more robust database management system than Access. While Access is better
suited to home and small office use, SQL Server is more suited to enterprise applications such as corporate CRMs
and websites etc.
The above screen is what you see when you open SQL Server through Enterprise Manager. Enterprise
Manager is a built-in tool for managing SQL Server and its databases. In this example, there are 6 databases. Each
database is represented down the left pane, and also in the main pane (with a "database" icon).
Which Database System to Use?
If you are using a database for home or small office use, Microsoft Access or Filemaker should be fine. If you need
to create a database driven website, then you're better off using a more robust system such as SQL Server, Oracle,
or MySQL.
The examples in this tutorial use Microsoft Access. If you don't have Microsoft Access, you should still be
able to follow the examples. The tasks we perform are the same tasks you would need to perform regardless of
which database management system you use. The key goal with this tutorial is to provide you with an overview of
what is involved in creating and maintaining a database. (Source: www.quackit.com)
Database Administration
 Database administration is the function of managing and maintaining database management systems
(DBMS) software. Mainstream DBMS software such as Oracle, IBM DB2 and Microsoft SQL Server need
ongoing management. (WikiPedia)
 Database administration is simply maintaining records of any type—customer lists, vendor histories, or
addresses, for example—using computer software known as a database management system (DBMS).
Read more: http://www.answers.com/topic/database-administration#ixzz2cuxczN7l
 Database administration is a complex, often thankless chore. (About.com)
As Anne Kerven said in Colorado Business Magazine, "Database management means the transferring of file cabinet
contents to an electronic file." Read more: http://www.answers.com/topic/database-administration#ixzz2cuyDALds
DBA Responsibilities (Source: Wikipedia)
 Installation, configuration and upgrading of Database server software and related products.
 Evaluate Database features and Database related products.
 Establish and maintain sound backup and recovery policies and procedures.
 Take care of the Database design and implementation.
 Implement and maintain database security (create and maintain users and roles, assign privileges).
 Database tuning and performance monitoring.
 Application tuning and performance monitoring.
 Setup and maintain documentation and standards.
 Plan growth and changes (capacity planning).
 Work as part of a team and provide 24x7 support when required.
 Do general technical troubleshooting and give cons.
 Database recovery.
Three Types of DBAs:



Systems DBAs (also referred to as Physical DBAs, Operations DBAs or Production Support DBAs): focus on the
physical aspects of database administration such as DBMS installation, configuration, patching, upgrades,
backups, restores, refreshes, performance optimization, maintenance and disaster recovery.
Development DBAs: focus on the logical and development aspects of database administration such as data
model design and maintenance, DDL (data definition language) generation, SQL writing and tuning, coding
stored procedures, collaborating with developers to help choose the most appropriate DBMS
feature/functionality and other pre-production activities.
Application DBAs: usually found in organizations that have purchased 3rd party application software such as
ERP (enterprise resource planning) and CRM (customer relationship management) systems. Examples of such
application software includes Oracle Applications, Siebel and PeopleSoft (both now part of Oracle Corp.)
and SAP. Application DBAs straddle the fence between the DBMS and the application software and are
responsible for ensuring that the application is fully optimized for the database and vice versa. They usually
manage all the application components that interact with the database and carry out activities such as
application installation and patching, application upgrades, database cloning, building and running data
cleanup routines, data load process management, etc.
While individuals usually specialize in one type of database administration, in smaller organizations, it is not uncommon
to find a single individual or group performing more than one type of database administration.
Nature of DBA
The degree to which the administration of a database is automated dictates the skills and personnel required to
manage databases. On one end of the spectrum, a system with minimal automation will require significant experienced
resources to manage; perhaps 5-10 databases per DBA. Alternatively an organization might choose to automate a
significant amount of the work that could be done manually therefore reducing the skills required to perform tasks. As
automation increases, the personnel needs of the organization splits into highly skilled workers to create and manage
the automation and a group of lower skilled "line" DBAs who simply execute the automation.
Database administration work is complex, repetitive, time-consuming and requires significant training. Since databases
hold valuable and mission-critical data, companies usually look for candidates with multiple years of experience.
Database administration often requires DBAs to put in work during off-hours (for example, for planned after hours
downtime, in the event of a database-related outage or if performance has been severely degraded). DBAs are
commonly well compensated for the long hours
One key skill required and often overlooked when selecting a DBA is database recovery (under disaster recovery). It
is not a case of “if” but a case of “when” a database suffers a failure, ranging from a simple failure to a full
catastrophic failure. The failure may be data corruption, media failure, or user induced errors. In either situation the
DBA must have the skills to recover the database to a given point in time to prevent a loss of data. A highly skilled
DBA can spend a few minutes or exceedingly long hours to get the database back to the operational point.
Database Administration Tools
Often, the DBMS software comes with certain tools to help DBAs manage the DBMS. Such tools are called native tools.
For example, Microsoft SQL Server comes with SQL Server Enterprise Manager and Oracle has tools such as SQL*Plus
and Oracle Enterprise Manager/Grid Control. In addition, 3rd parties such as BMC, Quest Software, Embarcadero
Technologies, EMS Database Management Solutions and SQL Maestro Group offer GUI tools to monitor the DBMS
and help DBAs carry out certain functions inside the database more easily.
Another kind of database software exists to manage the provisioning of new databases and the management of
existing databases and their related resources. The process of creating a new database can consist of hundreds or
thousands of unique steps from satisfying prerequisites to configuring backups where each step must be successful
before the next can start. A human cannot be expected to complete this procedure in the same exact way time after
time - exactly the goal when multiple databases exist. As the number of DBAs grows, without automation the number
of unique configurations frequently grows to be costly/difficult to support. All of these complicated procedures can be
modeled by the best DBAs into database automation software and executed by the standard DBAs. Software has
been created specifically to improve the reliability and repeatability of these procedures such as Stratavia's Data
Palette, Confio, and GridApp Systems Clarity.
The Impact of IT Automation on Database Administration
Recently, automation has begun to impact this area significantly. Newer technologies such as Stratavia's Data Palette
suite and GridApp Systems Clarity have begun to increase the automation of databases causing the reduction of
database related tasks. However at best this only reduces the amount of mundane, repetitive activities and does not
eliminate the need for DBAs. The intention of DBA automation is to enable DBAs to focus on more proactive activities
around database architecture, deployment, performance and service level management.
Every database requires a database owner account that can perform all schema management operations. This account
is specific to the database and cannot log in to Data Director. You can add database owner accounts after database
creation. Data Director users must log in with their database-specific credentials to view the database, its entities, and
its data or to perform database management tasks. Database administrators and application developers can manage
databases only if they have appropriate permissions and roles granted to them by the organization administrator.
The permissions and roles must be granted on the database group or on the database, and they only apply within the
organization in which they are granted.
Choosing a Database for Your Organization
Desktop vs. Server Database Systems
By Mike Chapple, About.com Guide
See More About:alpha five oracle microsoft sql server microsoft access filemaker pro
Define Your Requirements
Database management systems (or DBMSs) can be divided into two categories -- desktop databases and server databases. Generally speaking,
desktop databases are oriented toward single-user applications and reside on standard personal computers (hence the term desktop).
Server databases contain mechanisms to ensure the reliability and consistency of data and are geared toward multi-user applications. These
databases are designed to run on high-performance servers and carry a correspondingly higher price tag.
It's important to do a careful needs analysis before you dive in and commit to a database solution. You'll often find that a desktop database
is suitable for your business requirements when you originally planned to purchase an expensive server-based solution. You may also uncover
hidden
requiremests
that
necessitate
the
deployment
of
a
scalable
server-based
database.
The needs analysis process will be specific to your organization but, at a minimum, should answer the following questions:
 Who will be using the database and what tasks will they perform?
 How often will the data be modified? Who will make these modifications?
 Who will be providing IT support for the database?
 What hardware is available? Is there a budget for purchasing additional hardware?
 Who will be responsible for maintaining the data?
 Will data access be offered over the Internet? If so, what level of access should be supported?
Once you've gathered the answers to these questions, you'll be prepared to begin the process of evaluating specific database management
systems. You may discover that a sophisticated multi-user server platform (like SQL Server or Oracle) is necessary to support your complex
requirements. On the other hand, a desktop database like Microsoft Access might be just as capable of meeting your needs (and much gentler
on your pocketbook!)
Desktop Databases
Desktop databases offer an inexpensive, simple solution to many less complex data storage and manipulation requirements. They earn their
name by virtue of the fact that they are designed to run on “desktop” (or personal) computers. You’re probably familiar with a few of these
products already – Microsoft Access, FoxPro, FileMaker Pro, Paradox and Lotus Approach are the major players.
Let’s examine a few of the benefits gained by utilizing a desktop database:
 Desktop databases are inexpensive. You’ll find that most desktop solutions are available for around $100 (compared to
thousands of dollars for their sever-based cousins). In fact, if you own a copy of Microsoft Office Professional, you’re already a
licensed owner of Microsoft Access.
 Desktop databases are user-friendly. A thorough understanding of SQL is not required when using these systems (although
many do support SQL for die-hards out there). Desktop DBMSs usually offer an easy-to-navigate graphical user interface.
 Desktop databases offer web solutions. Many modern desktop databases provide web functionality enabling you to publish
your data on the web in a static or dynamic fashion.
Server Databases
Server databases, such as Microsoft SQL Server, Oracle and IBM DB2, offer organizations the ability to manage large amounts of data efficiently
and in a manner that enables many users to access and update the data simultaneously. If you’re able to carry the hefty pricetag, a serverbased
database
can
provide
you
with
a
comprehensive
data
management
solution.
The benefits achieved through the use of a server-based system are diverse. Let’s take a look at a few of the more prominent gains achieved:
 Flexibility. Server-based databases can handle just about any data management problem you can throw at them. Developers love
these systems because they have programmer-friendly application programmer interfaces (or APIs) that provide for the rapid
development of database oriented custom applications. The Oracle platform is even available for multiple operating systems, providing
Linux junkies with a level playing field when paired off against the Microsoft folks.
 Powerful performance. Server-based databases are as powerful as you want them to be. The major players are able to
efficiently utilize just about any reasonable hardware platform that you’re able to construct for them. Modern databases can manage
multiple high-speed processors, clustered servers, high bandwidth connectivity and fault tolerant storage technology.
 Scalability. This attribute goes hand-in-hand with the previous one. If you’re willing to provide the necessary hardware resources,
server databases are able to gracefully handle a rapidly expanding amount of users and/or data.
This article provided you with the basic information you need to begin the database selection process. Explore the site for reviews,
tutorials and other articles to help you in your decision.
Top Five Things Beginners Need to Know About Databases
By Mike Chapple, About.com Guide
See More About: database tutorials databases
Just getting started with databases? Here's a rundown of the top things that I wish I knew before I got started in the field. These facts are
guaranteed to make your life easier!
1. SQL Forms the Core of Relational Databases
You can't avoid it. The Structured Query Language forms the core of all relational databases. It provides a uniform interface to Oracle, SQL
Server, Access and other relational databases and is a "must learn" for all aspiring database users. In fact, I encourage you to take an
introductory SQL course before you even attempt to learn any specific database software. The investment of time will help you build a proper
foundation and get started in the world of databases on the correct foot. For a quick start, read SQL Basics or, for a more comprehensive
introduction, take our free Learning SQL e-course.
2. Selecting Primary Keys is an Extremely Important Decision
The selection of a primary key is one of the most critical decisions you’ll make in the design of a new database. The most important constraint
is that you must ensure that the selected key is unique. If it’s possible that two records (past, present, or future) may share the same value
for an attribute, it’s a poor choice for a primary key. When evaluating this constraint, you should think creatively. You'll also need to avoid
sensitive values, such as Social Security Numbers, as they raise privacy concerns. For more information on selecting a strong primary key,
read Choosing a Primary Key.
3. NULL Is Not Zero or the Empty String
NULL is a very special value in the world of databases, but it's something that beginners often get confused about. When you see a NULL
value, interpret it as "unknown". If a quantity is NULL, that doesn't necessarily mean that the quantity is zero. Similarly, if a text field holds
a NULL value, that doesn't mean that there isn't an appropriate value, it's simply unknown. For example, consider a database containing
information about children who attend a particular school. If the secretary entering the record does not know a student's age a NULL value
is used to indicate the "unknown" placeholder. The student certainly has an age, it's just not present in the database.
4. Converting Spreadsheets to Databases Saves Time
If you already have tons of data stored in Excel (or other) spreadsheets, you can save yourself mountains of time by converting those
spreadsheets into database tables. Read our tutorial on Converting Excel Spreadsheets to Access Databases to get started.
5. All Database Platforms Are NOT Created Equal
There are many different databases out there and all offer a variety of different features at different price points. Some are full-featured
enterprise databases designed to host huge data warehouses serving multinational enterprises. Others are desktop databases better suited to
tracking inventory for a small store with one or two users. Your business requirements will dictate the appropriate database platform for your
needs. Read our article Database Software Options for more information.
Database Maintenance Tools (Source: www.sqlmanager.net)
SQL Angel
Save up to 95% of disk space and time while creating backups. Automate your database maintenance process to improve data
availability and boost overall SQL Server performance. Create maintenance policies and monitor their real-time execution status.
SQL Administrator
Simplify and automate SQL Server administration process. Manage your maintenance tasks, analyze performance statistics, manage
server permissions and find server security vulnerabilities.
Database Management Tools
SQL Manager
Simplify and automate your database development process, design, explore and maintain existing databases, build compound SQL
query statements, manage database user rights and manipulate data in different ways.
Database Conversion and Migration Tools
Data Export
Export your data to any of 20 most popular data formats, including MS Access, MS Excel, MS Word, PDF, HTML and more.
 Data Export for Oracle
 Data Export for MySQL
 Data Export for SQL Server
 Data Export for PostgreSQL
 Data Export for InterBase/Firebird
 Data Export for DB2
DB Extract
Create database backups in the form of SQL scripts, save your database structure and table data as a whole or partially.
 DB Extract for DB2
 DB Extract for Oracle
 DB Extract for MySQL
 DB Extract for SQL Server
 DB Extract for PostgreSQL
 DB Extract for InterBase/Firebird
Data Import
Import your data from MS Access, MS Excel and other popular formats to database tables via user-friendly wizard interface.
Data Pump
Migrate from any ADO-compatible sources to MySQL, PostgreSQL, SQL Server, InterBase/Firebird, Oracle or DB2 databases.
Database Analysis Tools
Data Comparer
Compare and synchronize the contents of your databases. Automate your data migrations from development to production database.
DB Comparer
Compare and synchronize the structure of your databases. Move changes on your development database to production with ease.
 DB Comparer for Oracle
 DB Comparer for MySQL
 DB Comparer for SQL Server
 DB Comparer for PostgreSQL
 DB Comparer for InterBase/Firebird
SQL Query
Analyze and retrieve your data, build your queries visually, work with query plans, build charts based on retrieved data quickly
and more.
Data Generator
Generate test data for database testing purposes in a simple and direct way. Wide range of data generation parameters.
Components and tools
Advanced Data Export VCL
Save your data from your VCL application in the most popular data formats for future viewing, printing or web publication
Advanced Data Import
Load data to your database from files in the most popular data formats. Don't waste your time on tiresome data conversion.
Advanced PDF Generator
Create PDF documents within your applications in the most simple and easy way without any knowledge of PDF format.
Advanced Query Builder
Build new complex SQL queries for many SQL dialects and represent the existing queries visually within your applications.
Advanced Excel Report
Create powerful template-based reports directly in MS Excel format from your Delphi applications with ease.
Advanced Localizer
Add multilingual support to your applications. Localize your Delphi projects without writing a single line of code.
Source Rescuer
Restore your lost source code from executables and get all project forms and data modules with all assigned properties and events.
In computer science, concurrency is a property of systems in which several computations are executing simultaneously,
and potentially interacting with each other. The computations may be executing on multiple cores in the same chip,
preemptively time-shared threads on the same processor, or executed on physically separated processors. A number
of mathematical models have been developed for general concurrent computation including Petri nets, process calculi,
the Parallel Random Access Machine model, the Actor model and the Reo Coordination Language. (Wikipedia)
Concurrency in a DBMS
Users submit transactions, and can think of each transaction as executing by itself.
 Concurrency is achieved by the DBMS, which interleaves actions (reads/writes of DB objects) of various
transactions.
 Each transaction must leave the database in a consistent state if the DB is consistent when the transaction
begins.
 DBMS will enforce some ICs, depending on the ICs declared in CREATE TABLE statements.
 Beyond this, the DBMS does not really understand the semantics of the data. (e.g., it does not understand
how the interest on a bank account is computed).
 Issues: Effect of interleaving transactions, and crashes.
In information technology and computer science, especially in the fields of computer programming, operating systems,
multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are
generated, while getting those results as quickly as possible.
Computer systems, both software and hardware, consist of modules, or components. Each component is designed to
operate correctly, i.e., to obey or to meet certain consistency rules. When components that operate concurrently interact
by messaging or by sharing accessed data (in memory or storage), a certain component's consistency may be violated
by another component. The general area of concurrency control provides rules, methods, design methodologies, and
theories to maintain the consistency of components operating concurrently while interacting, and thus the consistency
and correctness of the whole system. Introducing concurrency control into a system means applying operation constraints
which typically result in some performance reduction. Operation consistency and correctness should be achieved with
as good as possible efficiency, without reducing performance below reasonable.
Download