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.