Free Essay

Database

In:

Submitted By steebdsilva
Words 2665
Pages 11
CS4321 Project 5: Transaction Processing System
November 21, 2012
This project is due on November 29th, at 23:59pm via CMS. It is worth a total of 100 points. It counts for 25% of your grade. Read the whole assignment carefully, and review the relevant textbook materials, before you start implementing. The relevant material for this assignment can be found in Chapter 16 and
17 of the course textbook.
The Big Picture
Figure 1: A Simple Transaction Processing System
1
Overview
In this assignment, you will implement a transaction processing system. The aim of the project is not to design a completely generic transaction processing engine but rather to give you a taste of the design decisions and challenges involved in doing so. You will be implementing transactions which can read, write and update values in a key-value store. As shown in gure , transactions access the key-value data stored in a "data page" through a linear hash index. The hash index in turn uses the bu er manager to fetch the appropriate pages from the disk.
We will provide you with a implementation of a linear hash index in the form of a library. Note that as long as the interface for the index is the same, the linear hash index may as well be replaced by a B+-tree index like the one which you implemented in the previous assignment. However, the B+-tree assignment you implemented does not support concurrent modi cation and hence cannot be used here directly. The linear hash index which is provided to you supports concurrent modi cations as is discussed later.
The transaction processing system you will implement will have the following properties :
1. Transactions are never rolled back (undo is never necessary).
2. Transactions have 2 phases: A read phase followed by an atomic write phase.
3. We use shared locks for all reads, and exclusive locks for all writes.
4. We use strict 2 PL as a concurrency control protocol i.e. both shared and exclusive locks once acquired are not released till the transaction ends.
5. Transactions can be aborted due to deadlock.
6. A deadlock detector is executed periodically to analyze wait-for graph and resolve deadlock by aborting necessary transactions.
Implemented Modules
The following modules are already implemented for you. We discuss the interface for each of the modules here. The header les corresponding to them are provided to you.
Linear Hash Index
The hash index which you were taught in CS4320/CS5320 is not thread-safe i.e. there is no way to prevent concurrently running transactions (processes) to make changes to the index. This may result in race condi- tions rendering the index corrupt. In order to prevent this we need to use locking and latching to make all operations over the hash index thread safe. A transaction (process) that needs to make changes to the index structure, i.e. change the directory because of splits or deletes, needs to have exclusive access to the index.
On the other hand a transaction which needs to add/remove data stored in the pages without inducing a split or compression of the index does not need exclusive access to the index as long as it has exclusive access to the bucket it is making changes to. This allows for multiple transactions to access the index and insert/delete data as long as they are not making changes to the index structure.
We have already implemented a thread safe version of a hash index as described above. The interface for the thread safe hash index is as follows :
Thread Safe Hash Index Interface
This interface has been implemented for you.
 ThreadSafeHashIndex(TransactionID tid, HashIndex *HI) Constructor used to set the owner of the current thread safe hash index. The hash index is shared by multiple transactions.
2
 Status InsertKeyValue(KeyType key, DataType value) Provides a wrapper around the InsertKeyValue of the HashIndex to make it threadsafe using the lock manager and latch manager to acquire and release appropriate locks and latches.
 Status DeleteKey(KeyType key) Provides a wrapper around the DeleteKey of the HashIndex to make it threadsafe using the lock manager and latch manager to acquire and release appropriate locks and latches.  Status GetValue(KeyType key, DataType &value) Provides a wrapper around the GetValue of the
HashIndex to make it threadsafe using the lock manager and latch manager to acquire and release appropriate locks and latches.
 Status UpdateValue(KeyType key, DataType newValue) Provides an additional functionality to the higher layers. Implemented in a threadsafe manner using the InsertKeyValue and DeleteKey function- ality of HashIndex.
Latch Manager
While you will not need to deal with the latch manager in this project, it is recommended that you browse through the implementation of a latch manager provided to you as latch.cpp.
Latches are a mechanism of ensuring exclusive access to physical resources by multiple processes. These are held for short duration. Latches are unset immediately after the physical read or write operation is completed. A latch manager keeps track of the latches in the system. We will support a bucket level latching for this project i.e. only 1 processes can access a bucket at any point of time. Since in our case, the objects being locked are keys and they do not correspond to disk pages, it is necessary to have latches to prevent con ict between read/write operations. Unlike locks, latches have no types (i.e no read latches / write latches). Interface
We only discuss 2 of the functions which are part of the latch manager interface. However, it is highly recommended to actually go through the latch.h and latch.cpp to understand how it is implemented in reality.  static void AcquireLatch(int pid, int oid) The caller thread (with identi er pid) is either granted a latch on object identi ed by oid or is put to sleep till it can get the latch. If it is granted the latch, the corresponding information is entered and maintained in a latchTable.
 static void ReleaseLatch(int pid, int oid) The latchTable is updated to re ect the fact that the trans- action pid is releasing the latch and grants the latch to anyone else waiting for a latch on object oid. Lock Manager
The lock manager is modeled as a static class. The lock manager maintains a lock table. Access to this table by multiple transactions is always mutually exclusive.
 static void AcquireSharedLock(int pid, int oid)
This function checks the Lock Table. If the oid is not currently locked by any transaction, then this transaction gets the shared lock. If the oid is currently locked by some set of transactions in shared mode, and there are no exclusiveLockRequests for this object in the object lock queue, then this transaction gets the shared lock. If the oid is currently locked in exclusive mode by some transaction, then this request gets enqueued and the transaction is blocked till the lock is granted.
 static void ReleaseSharedLock(int pid, int oid)
This function removes pid from the list of transactions currently holding locks on oid.
3
 static void AcquireExclusiveLock(int pid, int oid)
If the oid is not currently locked by any transaction, then this transaction gets the shared lock. If the oid is currently locked by some set of transactions in shared mode, then this transactions request gets enqueued and the transaction is blocked. If the oid is currently locked in exclusive mode by some transaction, then this request gets enqueued and the transaction is blocked till the lock is granted.
 static void ReleaseExclusiveLock(int pid, int oid)
This function removes pid from the list of transactions currently holding locks on oid.
The following four functions relating to index locking are self explanatory. They are used by the Thread-
SafeHashIndex implementation and you do not need to use them.
 static void AcquireSharedIndexLock(int pid)
 static void ReleaseSharedIndexLock(int pid)
 static void AcquireExclusiveIndexLock(int pid)
 static void ReleaseExclusiveIndexLock(int pid)
To Be Implemented
Transactions
The following code snippet is what a transaction in our system looks like: public ref class myTrans : TranscationExecution
{
public: void run()
{
int i, j;
T->StartTranscation();
T->Read(2, i);
T->Read(3, j); i = i - 100; j = j + 100;
T->AddWritePair(2,i, UPDATE)
T->AddWritePair(3,j, UPDATE)
T->GroupWrite();
T->CommitTranscation();
T->EndTransaction();
}
};
You may assume that such a transaction transfers an amount of 100$ from account number 2 to ac- count number 3. In the real world such transaction codes are automatically generated from the frontend web interface of many di erent systems including banking, ight reservation etc. Of course they are more complicated, but this simple transaction should give you a feel of how things actually work in the real world.
Each such transaction runs as a separate thread in the system. On each read the transaction uses the thread safe hash index to get the value for the key from the disk. The hash index in turn may use the bu er manager to fetch the page which contains the data into memory before allowing the hash index to fetch the value. Each transaction has a read phase during which the transaction performs all the reads, followed by an atomic write phase in which the transaction writes data to disk. Note that once the transaction has performed a groupWrite, it cannot perform any reads. Atomicity of the group write phase is ensured by
4
acquiring write locks on all the data items to be written before actually writing them. After the read and the groupwrite phase, the transaction commits. After commit, the endTransaction function is called which releases all the locks acquired by the transaction.
Interface The following interface needs to be implemented by you.
 Status StartTransaction()
{ Change the transaction status to RUNNING.
 Status Read(int key, int &value)
{ Acquire shared lock before reading data.
{ If AcquireSharedLock() returns false, which means the transaction failed in getting this lock, call
AbortTransaction() and return FAIL.
 Status AddWritePair(int key, int value, OpType fINSERT, DELETE, UPDATEg)
{ Add the key-value pair to write list.
 Status GroupWrite()
{ Acquire exclusive lock(s) before writing data.
{ If AcquireExclusiveLock() returns false, which means the transaction failed in getting this lock, call
AbortTransaction() and return FAIL.
{ Change the transaction status to GROUPWRITE.
 Status CommitTransaction()
{ Change the transaction status to COMMITTED.
 Status EndTransaction()
{ Release all currently held locks (shared and exclusive).
 private: Status AbortTransaction()
{ Change the transaction status to ABORTED.
{ Release all currently held locks (shared and exclusive).
{ The transaction should NOT respond to any later request. If user ignores the fact that the transaction is aborted and continues sending requests, FAIL should be directly returned.
Please do NOT modify the above interface, but feel free to add data structures and private functions to the transaction class if you want to.
Lock Upgrades : It can be done as following:
LockManager::AcquireSharedLock(this->pid, objectID);
...
LockManager::AcquireExclusiveLock(this->pid, objectID);
...
LockManager::ReleaseExclusiveLock(this->pid, objectID);
A AcquireExclusiveLock() request to an object of which the shared lock is already owned by current transaction, will be automatically treated as lock upgrade request by LockManager. The lock manager will try to acquire exclusive lock of the object WITHOUT releasing the shared lock. Therefore, strict 2PL protocol is still enforced.
Note that once a lock gets upgraded, we should use ReleaseExclusiveLock() instead of ReleaseShared-
Lock() when releasing the lock.
5
Deadlock Detector
In the above system, deadlocks may occur. There are two simple deadlock examples in test2() and test3().
A deadlock detector stub is already created and executed periodically.
The deadlock detection and resolving consists of three steps. First, you need to build a wait-for graph by examining the lock tables. Second, you need to analyze the wait-for graph and decide which transactions should be aborted, if there is deadlock(s). Finally, abort the transactions as decided during analysis to eliminate all deadlocks.
Interface
 void run();
{ Add initialization of local data structures here.
 void BuildWaitForGraph();
{ Examine the lock table (will be described in details later).
{ Construct wait-for graph.
 void AnalyzeWaitForGraph();
{ Analyze the wait-for graph and decide the abort transactions(if any).
 void AbortTransactions();
{ Already implemented for you. Please do not modify this function.
For simplicity of implementation, we prede ne the maximal number of current transactions to be maxT, and a boolean array abortT [1::maxT ] should be generated by AnalyzeWaitForGraph(). AbortTransactions() will abort all transactions with TransactionID tid such that abortT [tid] = true.
Lock Table
You need to examine the lock table in BuildWaitForGraph(). In the lock table, we keep a ReadWriteFI-
FOLock for each object that is accessed by the transaction processing system.
For each ReadWriteFIFOLock, lockingList and waitQ are the two data structures where you can extract wait-for graph from.
The ReadWriteFIFOLock() works in the following way:
1) lockingList keeps all transaction/process IDs that currently hold the lock for this object. Only if it is shared lock, there might be multiple elements in lockingList.
2) waitQ keeps track of transactions that request for the lock but are currently blocked, because some transactions in lockingList have not released their locks yet.
3) When a request arrives at LockManager, if the waitQ is not empty OR the lock cannot be obtained immediately, the request is appended to the tail of waitQ, except
4) If such request is a upgrade request, add it to the head of the waitQ (why this is better than append to the tail of waitQ?).
5) After releasing any lock, if lockingList is empty, requests will be dequeued from waitQ from head to tail, to ll in lockingList.
You need to examine both lockingList and waitQ to build the wait-for graph. Since ReadWriteFI-
FOLock class is written in Managed C++, examples of accessing elements in lockingList and waitQ are provided to you.
Think about the following question:
Does the entire waitQ need to be examined to build wait-for graph? If not, is the rst element (if exists) enough? 6
Compilation and Testing
The source code for the project can be downloaded from the course management system. If you unzip this le, you will see the following directories and les.
Top-level Directory:
 This contains the Visual Studio 2010 project and solution les for this assignment
Related les in directories \src" and \include":
 transaction.cpp(.h)
 lock.cpp(.h)
 deadlockDetector.cpp(.h)
 main.cpp
 test.cpp(.h)
Directory \lib" contains the library les you will need in order to generate an executable.
What You Need to Do
Files to complete:
 transaction.cpp
- You need to implement the interface provided to you.
 deadlock detector.cpp
- You need to implement missing functions for the deadlock detector.
Testcases
You can nd 4 testcases in test.cpp. Note that these 4 testcases can only be run separately. You may edit which test to run in main.cpp
 test1()
{ a no-deadlock example.
 test2()
{ a deadlock example (simultaneous upgrade).
 test3()
{ a deadlock example (circular wait).
 test4()
{ mixture of the two deadlock examples above.
Evaluation
You project will be evaluated using the following criteria: 1) Correctness of locking protocol, 2) Correctness of construction of wait-for graph, 3) Abort rate.
Implementation (90 points)
In order to get full points for implementation, the following requirements should be satis ed:
7
 The locking protocol is implemented correctly.
 The construction of wait-for graph is correct.
 If there is no deadlock, no transaction will be aborted.
 If there is deadlock(s), try your best to abort as few transactions as possible.
Documentation (10 points)
Write an one-page summary, describing
 How you construct the wait-for graph.
 How you analyze the wait-for graph and decide which transaction(s) should be aborted.
What to Turn In
Submission will be via CMS. Submit a single zip le of your Visual Studio 2010 project. You should submit the same set of les given to you at the beginning of this assignment, plus any additional header and source les you have created for this assignment. The code should compile under the Visual Studio solution le you submit. Good luck!
8

Similar Documents

Premium Essay

Database

...needed to build a database for the scheduling process. * Describe the advantages and disadvantages of moving the schedule to a database. * Create a graphical representation of your proposed database environment. * Explain how referential integrity can prevent mistakes in a database. Do the advantages outweigh the difficulty of setting it up? * Impress your boss by creating a database in Microsoft Access that will match trainers with courses and meet the following requirements: * Two (2) tables, one (1) containing trainer information and the other containing course information. Create data for five (5) instructors and five (5) courses. The trainer data should include: employee ID number, last name, first name, department, and email address. The course data should include: course number, course name, trainer employee ID number, and training location. * A relationship should exist between the tables. * Use referential integrity to make sure that each course has a valid trainer assigned to it. Week 7 Assignment 4 * Discuss the requirements needed to build a database for the scheduling process. The first step in creating a database is creating a plan that serves both as a guide to be used when implementing the database and as a functional specification after it has been implemented. The complexity and detail of a design is dictated by the complexity and size of the database application as well as the user population. A database can be relatively...

Words: 681 - Pages: 3

Premium Essay

Databases

...University of Phoenix Material Determining Databases and Data Communications Read Scenario 1 and Scenario 2 below. Write a paper of no more than 1,500 words in which you respond to the questions designated for both scenarios. Scenario 1: You are a marketing assistant for a consumer electronics company and are in charge of setting up your company’s booth at trade shows. Weeks before a show, you meet with the marketing managers and determine what displays and equipment they want to display. Then, you identify each of the components that need to be shipped and schedule a shipper to deliver them to the trade show site. You then supervise trade show personnel as they set up the booths and equipment. After the show, you supervise packing the booth and all the equipment as well as schedule its shipment back to your home office. When the equipment arrives, you check it into your warehouse to ensure that all pieces of the booth and all the equipment are returned. If there are any problems due to shipping damage or loss, you handle those problems. Your job is important; at a typical show you are responsible for more than a quarter-million dollars of equipment. • In Scenario 1: o You need to track data about booth components, equipment, shippers, and shipment. List typical fields for each type of data. Provide an example of two relationships that you need to track. o Do you need a database system? If not, can Excel® handle the data and the output? What...

Words: 436 - Pages: 2

Premium Essay

Database

...or the programs in such a way that they become in machine readable form. Once the system is done with the coding stage it tests the systems and sees to it that it is working as per the expectations or not. System implantation is one of the most vital phases as in this phase the analyst actually gives the system to the customer and expects for a positive feedback. Finally, the system maintenance is that the analyst needs to maintain the system and see to it that it working within the standards set. He needs to maintain the system by removing the defects of flaws occurred. I think this relates to database development because in 1960 the developers, Elliott and Strachan and Radford developed large scale functional business systems in an age of large scale business conglomerates. Information systems activities revolved around heavy data processing and number crunching routines. The database is also a design lie...

Words: 368 - Pages: 2

Premium Essay

Database

...DATABASE ASSIGNEMENT ONLINE STORE DATABSE TABLE NAME * STUDENT/CUSTOMER * ENROLLMENT * COURSES * CATEGORY * ORDERS * ORDER DETAILS * PAYMENT * PRODUCT * SHIPPERS * SUPPLIER/COMPANY TABLES ATTRIBUTES STUDENT/CUSTOMER STUDENT table contain attribute such as: * STUDENT ID-PRIMARY KEY * FIRST NAME * LAST NAME * ADDRESS * POSTAL CODE * CITY * STATE * COUNTRY * PHONE * EMAIL * PASSWORD * CREDIT CARD * CREDIT CARD TYPE ID * BILLING ADDRESS * SHIP ADDRESS * DATE ENTERED ENROLLMENT ENROLLMENT table contain attribute such as: * STU ID-PRIMARY KEY * COURSE ID-PRIMARY KEY * SEMESTER-PRIMARY KEY * INTAKE COURSES COURSE table contain attribute such as: * COURSE ID-PRIMARY KEY * COURSE NAME * FACULTY CATEGORY CATEGORY table contain attribute such as: * CATEGORY ID-PRIMARY KEY * CATEGORY NAME * DESCRIPTION * PICTURE * ACTIVE ORDERS ORDERS table contain attribute such as: * ORDER ID * STUDENT ID * PAYMENT ID * SHIPPER ID * ORDER NUMBER * ORDER DATE * SHIPDATE * REQUIRED DATE * SALE TAX * TIME STAMP * TRANSACTION STATUS * FULFILED * DELETED * PAID * PAYMENT DATE ORDER DETAILS ORDERDATAILS table contain attribute such as: * ORDER IDs-PRIMARY KEY * PRODUCT IDs * ORDER NUMBER * PRICE * QUANTITY * DISCOUNT * TOTAL * IDSKU *...

Words: 289 - Pages: 2

Premium Essay

Databases

...Examples of database and table creation The following examples use the create keyword to create the sample staff database and define the tables. These example OQL statements illustrate the use of the column constraints and the default keyword. Example 1 create database staff; // creates the staff database The following insert defines the managers table. create table staff.managers ( EmployeeID int NOT NULL PRIMARY KEY, Name text NOT NULL, Department text default "Sales", Gender text, Age int, unique ( EmployeeID ) // indicates that the data in the // EmployeeID column must be unique. ); For the managers table: • The EmployeeID and Name columns cannot be NULL. • The EmployeeID column is the primary key and must be unique. • If no value is inserted into the Department column for a given record it takes the value "Sales". Example 2 The following insert creates the staff.employees table. create table staff.employees ( EmployeeID int NOT NULL PRIMARY KEY, Name text NOT NULL, Skills list type text, Gender text, Age int // There is no comma here because this ...

Words: 978 - Pages: 4

Premium Essay

Database

...meet the problems or opportunities of the business. 1) ___A. database analysis____ A) Database analysts B) Users C) Systems analysts D) Programmers TRUE/FALSE. Write 'T' if the statement is true and 'F' if the statement is false. 2) Database development projects are never done in a bottom-up fashion. 2) __False_ 3) A well-structured database establishes the entities between relationships in order to derive the desired information. 3) _False_ ESSAY. Write your answer in the space provided or on a separate sheet of paper. 4) Provide a brief overview of the various components of the database environment. TRUE/FALSE. Write 'T' if the statement is true and 'F' if the statement is false. 5) Database processing programs are coded and tested during the design stage of the systems development life cycle. 5) __F__ MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 6) Organizing the database in computer disk storage is done in the ________ phase. 6) _Design__ A) analysis B) design C) implementation D) maintenance 7) A workgroup database is stored on a central device called a(n): 7) __c. server_____ A) client. B) network. C) server. D) remote PC. TRUE/FALSE. Write 'T' if the statement is true and 'F' if the statement is false. 8) Many of the disadvantages of file processing systems can also be limitations of databases. 8) ___T____ MULTIPLE CHOICE. Choose the one alternative that...

Words: 336 - Pages: 2

Premium Essay

Database

...Software Requirements Specification October 28, 2013 Window App for Sending SMS to mobiles via internet from your computer Submitted by: Muhammad Gulfam Submitted to: Engr. Natasha Nigar Software Engineering Table of Contents Table of contents……………………………………………………………………. List of figures……………………………………………………………………….. 1. Introduction………………………………………………………………….3 1. Purpose……………………………………………………………...3 2. Scope of project……………………………………………………...3 3. Glossary……………………………………………………………...3 4. Overview of document……………………………………………….4 2. Overall Description……..…………………………………………………......5 2.1. System Environment...……………………………………………….5 2.2. Functional Requirement Specification ……………...……………….6 2.2.1. User use cases………………………………………………...6 2.3. User characteristics …………………………………………………….11 2.4. Non Functional Requirements ……………………………….…………11 3. Requirement Specification …………………………………………………..12 3.1 Functional Requirements ……………………………………………12 List of diagrams Fig.1 System Environment ………………………………………………………….3 1.0. Introduction 1.1. Purpose The purpose of this document is to present a detailed description of the Window App for Sending SMS to mobiles via internet from your computer. It will explain the purpose and features of the system, the interfaces of the system, what the system will do, the constraints under which it must...

Words: 2905 - Pages: 12

Premium Essay

Database

...Jackie Tau PT2520/Database March 23, 2013 Lab 1.2 –Define Major Topics for a Database Nouns | Major Topic | Hospitals | Conducting a double blind test of a new depression drug | Doctors | Need to be able to see their own patient’s information and be able to enter blood pressures, blood results, depressions indicators, notes, etc. | Patients | Should be able to see their own medical profile, doctor notes | Drugs | A new drug will be dispersed in generic bottles, given to half of the patients for depression & to test the side effects. | Lab1.3- Create a Statement of Work Grandfield College: There is a law that requires businesses’ including schools, track their software. It is important to know what software the school owns, the versions, & license agreement. They’re a several licensing schemes. The least restrictive is a site that allows am institution to have a copy of the software in any machine in the school property. It is also important for the school to know which software is installed on the machine, location & which users have access. The school just wants to track the faculty & staff computers & software. For students it will be separate & treated as a second project later. Lab 1.4 –Challenge Activity 1. Describe a situation in which the database might become inconsistent. * Transaction failure, database system failure, 2. How could a relational database ensure data consistency? * Data integrity 3. What...

Words: 262 - Pages: 2

Free Essay

Database

...SOURCES FOR INDUSTRIES AND COMPANIES 1. Plunkett Research Online http://cufts2.lib.sfu.ca/CRDB4/BVAS/resource/10747 This is actually a collection of "industry almanac" ebooks from one publisher, rather than a normal article or report database.  Each title will have a general overview of the industry, followed by a long directory of key companies, all in a downloadable ebook format. 2. IBISWorld http://cufts2.lib.sfu.ca/CRDB4/BVAS/resource/10535 IBISWorld includes Canadian, US, China, and Global report modules.  It provides industry reports that touch on things like barriers to entry and concentration, and it includes a list of a few top companies in each industry.  3. MarketLine There are hundreds of MarketLine industry reports in both our ORBIS and Business Source Complete databases. We could also use the same database to extract company reports on major firms in that field. http://cufts2.lib.sfu.ca/CRDB4/BVAS/resource/6022   4. Factiva and LexisNexis are some of the best places to start if you want to start understanding who the key publishers (government agencies, industry associations, etc.) are in a given field.  You may get lots of press releases on strategic alliances, M&As, joint ventures, etc. 5. International Market Research http://www.lib.sfu.ca/help/subject-guides/business/international-market  6. Industry Surveys http://www.lib.sfu.ca/help/subject-guides/business/industry-surveys 7. Passport GMID http://cufts2...

Words: 402 - Pages: 2

Premium Essay

Database

...Database: Database is a group or collection of information which are assembled in such a way that a computer program can easily access the stored information and select required pieces of data. Databases are characterized in such a way that that it helps to store, retrieve, modify and delete data which is linked with various data processing operations. Advantages of Databases: • It helps to control data redundancy by centralizing databases although it is not necessary to eliminate all redundancy because sometimes it is used to store multiple copies of data due to business and technical reasons. • It helps to enforce integrity by enforcing specific integrity constraints which increases data integrity and independence of application programs. • It improves data security by restricting unauthorized access. • It helps to create an environment in which end users have easy access to data which helps them to respond quickly to changes in their environment. • It provides a backup for recovering from hardware or software failures. Disadvantages of Databases: • Database systems come at high cost which includes specific and sophisticated hardware, software and personnel for operating and maintaining this database system. • The complexity and breadth of functionality makes this system an extremely large piece of software which occupies large amount of disk space and requiring substantial amounts of memory to run efficiently. • There is a higher impact of failure due to the centralization...

Words: 252 - Pages: 2

Premium Essay

Database

...IST 792 paper 2 Database security is a growing concern evidenced by an increase in the number of reported incidencets of loss of unauthorized exposure to sensitive data. As the amount of data collected, retained, and shared electronically expands, so does the need to understand database security. (Murray, 2010) Database security concerns the use of a broad range of information security controls to protect databases (potentially including the data, the database applications or stored functions, the database systems, the database servers and the associated network links) against compromises of their confidentiality, integrity and availability. It involves various types or categories of controls, such as technical, procedural/administrative and physical. Database security is a specialist topic within the broader realms of computer security,information security and risk management. Security risks to database systems include, for example: * Unauthorized or unintended activity or misuse by authorized database users, database administrators, or network/systems managers, or by unauthorized users or hackers (e.g. inappropriate access to sensitive data, metadata or functions within databases, or inappropriate changes to the database programs, structures or security configurations); * Malware infections causing incidents such as unauthorized access, leakage or disclosure of personal or proprietary data, deletion of or damage to the data or programs, interruption or denial of...

Words: 524 - Pages: 3

Premium Essay

Database

...Introduction $  $  • Purpose of Database Systems • Data Definition Language • Data Manipulation Language • Transaction Management & ' & • Storage Management • Database Administrator • Database Users • Overall System Structure 1.1 Silberschatz, Korth and Sudarshan c 1997 Database Systems Concepts Database Management System (DBMS) • Collection of interrelated data • Set of programs to access the data • DBMS contains information about a particular enterprise • DBMS provides an environment that it both convenient and efficient to use Database Systems Concepts 1.2 Silberschatz, Korth and Sudarshan c 1997 ' & ' & Purpose of Database Systems $  $  Database management systems were developed to handle the following difficulties of typical file-processing systems supported by conventional operating systems. • Data redundancy and inconsistency • Difficulty in accessing data • Data isolation – multiple files and formats • Integrity problems • Atomicity of updates • Concurrent access by multiple users • Security problems Database Systems Concepts 1.3 Silberschatz, Korth and Sudarshan c 1997 View of Data An architecture for a database system view level view 1 view 2 … view n logical level physical level Database Systems Concepts 1.4 Silberschatz, Korth and Sudarshan c 1997 ' & ' & Levels of Abstraction $  $  • Physical level: describes how a record (e.g., customer) is stored. • Logical level: describes data stored in database, and the relationships among the...

Words: 1023 - Pages: 5

Premium Essay

Database Environment

...The Getty Provenance Institute’s database (The Gettys research institute, 2012) contains 1.1 million records. All of these records can be used for a wide variety of research. According to the institute the database can be used for assistance in finding information for Projects, and for the Study of Collecting. According to the Database, “The J. Paul Getty Museum acquired The Entombment (ca. 1612) by Peter Paul Rubens in a Christie's sale in 1992. At that time, the provenance of the painting could only be traced as far back as the mid-19th century. The number 146, located on the face of the painting, appeared to be an inventory number (the Getty Research Institute, 2012). A search in the Provenance Index's Archival Inventories database retrieved a single record in which the artist name (Rubens) and item number (146) matched. The search lead to a 1651 inventory preserved in the Archivo de la Casa de Alba, Palacio de Liria in Madrid, which lists this Rubens painting. Possibly its first owner was Gaspar de Haro y Guzmán Carpio (1629–1687)”. Other Institutions are not as lucky some. Some Museums are not so fortunate to find the item number associated with the picture. When it is time to introduce the collections into a database, curators of small museums find themselves in a little bit of trouble. The features and capabilities offered by the newer commercial and professional collection systems are more than they will ever need, more than they can support and more than they...

Words: 1164 - Pages: 5

Premium Essay

Database Program

...New Database Program for ACCC Michele Ritchie SCI110 – Introduction to Physical Science Instructor Casey Bethel February 17, 2016 The Scientific Method The scientific method is a way to ask and answer scientific questions by making observations and doing experiments. The steps of the scientific method are to ask a question, do background research, construct a hypothesis, test your hypothesis by doing an experiment, analyze your data and draw a conclusion, and communicate your results. Problem Statement At American Classic Carpet Care, a nationwide commercial and retail carpet cleaner, we have several different databases that we use for our client base. Each database contains a certain type of business contact. For example, one database is for hotels only, another is for restaurants only. Then, we also have separate databases for local work and out of state work. As you can see, one restaurant or hotel could potentially be put in more than one database. Currently, we use the Pro 2011 version of ACT!. This version is not set up to transfer information from one database to the other automatically. Manually transferring information one client at a time is very time consuming. Overview of Alternatives Alternative #1- Upgrade to ACT! Premium: This application allows you to transfer data from one database to the other, along with many other updated features of the ACT! Program. For example, optimized template storage makes it easy to quickly navigate and locate all...

Words: 647 - Pages: 3

Free Essay

No Sql Databases

...INSY 5337 Data Warehousing – Term Paper NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and Cassandra Authored ByNitin Shewale Aditya Kashyap Akshay Vadnere Vivek Adithya Aditya Trilok Abstract Data volumes have been growing exponentially in recent years, this increase in data across all the business domains have played a significant part in the analysis and structuring of data. NoSQL databases are becoming popular as more organizations consider it as a feasible option because of its schema-less structure along with its capability of handling BIG Data. In this paper, we talk about various types of NoSQL databases based on implementation perspective like key store, columnar and document oriented. This research paper covers the consolidated applied interpretation of NoSQL system, depending on the various database features like security, concurrency control, partitioning, replication, Read/Write implementation. We also would draw out comparisons among the popular products and recommend a particular NoSQL solution on the above mentioned factors. 1. Introduction Until recently, Relational database systems have been on the forefront of data storage and management operations. The advent of mobile applications that requires real time analysis like GPS based services, banking and social media has led to huge unstructured data being produced every second. Traditional RDBMS systems have found it difficult to cater to these huge chunks of unstructured...

Words: 4246 - Pages: 17