Monday, March 11, 2013

DB Roles and responsibilities


1.5.1 Data Architect
A data architect is responsible for designing an architecture that supports the organization's existing and future needs for data management. The architecture should cover databases, data integration and the means to get to the data. Usually the data architect achieves his goals by setting enterprise data standards. A Data Architect is also referred to as a Data Modeler. This is in spite of the fact that the role involves much more than just creating data models.
Some fundamental skills of a Data Architect are:
Logical Data modeling Physical Data modeling Development of a data strategy and associated policies Selection of capabilities and systems to meet business information needs
1.5.2 Database Architect
This role is similar to a Data Architect, though constraints more towards a database solution. A database architect is responsible for the following activities: Gather and document requirements from business users and management and address them in a solution architecture. Share the architecture with business users and management. Create and enforce database and application development standards and processes. Create and enforce service level agreements (SLAs) for the business, specially addressing high availability, backup/restore and security.
Study new products, versions compatibility, and deployment feasibility and give recommendations to development teams and management. Understand hardware, operating system, database system, multi-tier component architecture and interaction between these components.
Prepare high-level documents in-line with requirements. Review detailed designs and implementation details. It is critical for a database architect to keep pace with the various tools, database products, hardware platforms and operating systems from different vendors as they evolve and improve.

1.5.3 Database Administrator (DBA)
A database administrator (DBA) is responsible for the maintenance, performance, integrity and security of a database. Additional role requirements are likely to include planning, development and troubleshooting.
The work of a database administrator (DBA) varies according to the nature of the employing organization and the level of responsibility associated with the post. The work may be pure maintenance or it may also involve specializing in database development. Typical responsibilities include some or all of the following:
Establishing the needs of users and monitoring user access and security; Monitoring performance and managing parameters to provide fast query responses to front-end users; Mapping out the conceptual design for a planned database in outline; Take into account both, back-end organization of data and front-end accessibility for end users; Refining the logical design so that it can be translated into a specific data model; Further refining the physical design to meet system storage requirements; Installing and testing new versions of the database management system (DBMS); Maintaining data standards, including adherence to the Data Protection Act; Writing database documentation, including data standards, procedures and definitions for the data dictionary (metadata); Controlling access permissions and privileges; Developing, managing and testing backup and recovery plans; Ensuring that storage, archiving, backup and recovery procedures are functioning correctly; Capacity planning;
Working closely with IT project managers, database programmers and Web developers; Communicating regularly with technical, applications and operational staff to ensure database integrity and security;
Commissioning and installing new applications. Because of the increasing levels of hacking and the sensitive nature of data stored, security and recoverability or disaster recovery have become increasingly important aspects.

1.5.4 Application Developer
A database application developer is a person in charge of developing applications that access databases. An application developer requires knowledge of the following: Integrated database application development environments (IDEs). Database plug-ins for IDEs. SQL development tools Database performance monitoring and debugging Application server environments, application deployment, application performance monitoring and debugging

Relational model


The relational data model is simple and elegant. It has a solid mathematic foundation based on sets theory and predicate calculus and is the most used data model for databases today.
One of the drivers for Codd's research was the fact that IMS programmers were spending large amounts of time doing maintenance on IMS applications when logical or physical changes occurred; therefore, his goal was to deliver a model that provided better data independence. His proposal was threefold:
Store the data in a simple data structure (tables) Access it through a high level set-at-a-time Data Manipulation Language (DML) Be independent from physical storage With a simple data structure, one has a better chance of providing logical data independence. With a high-level language, one can provide a high degree of physical data independence. Therefore, this model allows also for physical storage independence. This was not possible in either IMS or CODASYL.
Figure 1.4 illustrates an example showing an Entity-Relationship (E-R) diagram that represents entities (tables) and their relationships for a sample relational model. We discuss more about E-R diagrams in the next section.

Hierarchical model

The hierarchical model organizes its data using a tree structure. The root of the tree is the parent followed by child nodes. A child node cannot have more than one parent, though a parent can have many child nodes. This is depicted in Figure 1.3

Network model

Relationship between an Information Model and a Data Model

Since conceptual models can be implemented in different ways, multiple Data Models can be derived from a single Information Model.

Why do we need database software or a DBMS?

First, we need the ability to have multiple users insert, update and delete data to the same data file without "stepping on each other's toes". This means that different users will not cause the data to become inconsistent, and no data should be inadvertently lost through these operations.

We also need to have a standard interface for data access, tools for data backup, data restore and recovery, and a way to handle other challenges such as the capability to work with huge volumes of data and users.

What is a database management system?

database management system, or simply DBMS, is a set of software tools that control access, organize, store, manage, retrieve and maintain data in a database. In practical use, the terms database, database server, database system, data server, and database management systems are often used interchangeably.

Database types

Data can be stored in various forms, namely tabular, hierarchical and graphical forms. If data is stored in a tabular form then it is called a relational database. When data is organized in a tree structure form, it is called a hierarchical database. Data stored as graphs representing relationships between objects is referred to as a network database.

What is a database?

A database is a repository of data, designed to support efficient data storage, retrieval and maintenance.