Good database design and modelling books

Hi ,
I need to work on designing a database from the scratch by creating logical database design and then physical database design.I'm new to database design.
Can someone please point me to some good database design and modelling related books /tutorials.
Regards,
Bharath.

bharathDBA wrote:
Hi Girish Thanks for the information.
I would definitely look into this book later.
I don't mind paying any amount of money,if that book gives me the knowledge I want.
As this book is international edition,for shipping it is taking 8-10 business days and by that time I need to complete designing my database and probably I might need to some other book.
Is this a school assignment? I hope so. Referring back to your opening statement "I need to work on designing a database from the scratch by creating logical database design and then physical database design.I'm new to database design." I can only say that database design is a very big subject. If you are starting from a position of no knowledge at all, I'm afraid there is nothing that is going to give you the knowledge you need in the time frame you have. I will say you need to start by learning the rules of Data Normalization. Make your logical design Third Normal Form. Good can be your friend. There is actually a pretty good write-up on Data Normalization on Wikipedia.

Similar Messages

  • Logical Database design and physical database implementation

    Hi
    I am an ORACLE DBA basically and we started a proactive server dashboard portal ,which basically reports all aspects of our infrastructure (Dev,QA and Prod,performance,capacity,number of servers,No of CPU,decomissioned date,OS level,Database patch level) etc..
    This has to be done entirely by our DBA team as this is not externally funded project.Now i was asked to do " Logical Database design and physical Database
    implementation"
    Even though i know roughly what's that mean(like designing whole set of tables in star schema format) ,i have never done this before.
    In my mind i have a rough set of tables that can be used but again i think there is lot of engineering involved in this area to make sure that we do it properly.
    I am wondering you guys might be having some recommendations for me in the sense where to start?are there any documents online , are there any book on this topic?Are there any documents which explain this phenomena with examples ?
    Also exactly what is the difference between logical database design vs physical database implementation
    Thanks and Regards

    Logical database design is the process of taking a business or conceptual data model (often described in the form of an Entity-Relationship Diagram) and transforming that into a logical representation of that model using the specific semantics of the database management system. In the case of an RDBMS such as Oracle, this representation would be in the form of definitions of relational tables, primary, unique and foreign key constraints and the appropriate column data types supported by the RDBMS.
    Physical database implementation is the process of taking the logical database design and translating that into the actual DDL statements supported by the target RDBMS that will create the database objects in a target RDBMS database. This will generally include specific physical implementation details such as the specification of tablespaces, use of specialised indexing (bitmap, clustered etc), partitioning, compression and anything else that relates to how data will actually be physically stored inside the database.
    It sounds like you already have a physical implementation? If so, you can reverse engineer this implementation into a design tool such as SQL Developer Data Modeller. This will create a logical design by examining the contents of the Oracle data dictionary. Even if you don't have an existing database, Data Modeller is a good tool to use as a starting point for logical and even conceptual/business models.
    If you want to read anything about logical design, "An Introduction to Database Systems" by Date is always a good starting point. "Database Systems - A Practical Approach to Design, Implementation and Management" by Connolly & Begg is also an excellent reference.

  • Should I learn database design and development skills?

    Hi everyone,
    I am a junior Oracle with 3 years experience. I have got Oracle 10g and 11g OCP certifications.
    I know how to install, configure,monitor and maintain databases, but I don't know hot to design and develop databases.
    I know that employers demand of us more and more. Database design and development skills are the basic requirements.
    Should I start to learn database design courses?
    If yes, please recommend me the books(or Oracle Docs) of Getting Started.
    Thank you very much
    Edited by: user8096439 on Feb 24, 2009 11:59 AM

    user8096439 wrote:
    Are the following books suitable for a getting started designer?
    2 Day Developer Guide      
    2 Day Plus Application Express Developer's Guide      
    2 Day Plus Java Developer Guide      
    2 Day Plus .NET Developer Guide      
    2 Day Plus Locator Developer Guide      
    2 Day Plus PHP Developer GuideYou could do worse, but I think before you plunge into specific technologies (java, .NET, etc) I'd study up on basic data analysis and normalization.
    Google "data normalization" and study up on 1st, 2d, and 3d Normal Form.
    Go through the Oracle docs and get very familiar with the different data type (varchar, number, date, etc)
    Read the Tom Kyte Books.
    Programmers keep wanting to re-invent what the database already does, and treat the database as a data dump. As a result, I'd focus on analysis and design issues before approaching books on programming technology. (and I was an applications programmer/analyst for about 15 years before transitioning to DBA)

  • Design and model

    Hi
              Anyone know of a good tool for designing and modelling a website that is
              written with JSPs ?
              Thanks
              C.
              

    To simple design and modeling , we can go for DreamWeaverMX.
              if we want to go to furthur implementation for components, we can go for Eclipse ,MyEclips and SmartDrawn.
              ---Anilkumar kari

  • Requirements for database design and installation

    Hi,
    As a database administrator, how to find out whether the database is design and installed properly?
    Can you please what would be the requirements to be considered towards the databse design for application developer ?
    thanks heaps !!!!

    Mohamed ELAzab wrote:
    regarding that the number of execution is the main thing that affects the performance i said that already above " the application executed it 30 000" but you didn't read my answer correctly. I did not respond to that "answer" of yours as it was not part of your posting that I responded too. In your response, which I quoted, talked about non-sharable SQL retrieving 20 rows and after 3 years it retrieving a million rows. This has no bearing on whether the SQL is sharable or not.
    I don't agree with you regarding that the design is not being done regarding considering the performance bottlenecks.So you decide on what the bottlenecks are up front, and then use these as database design considerations? I fail to see any logic or merit in such an approach.
    i want to let you know that we in the telecoms environment have many problems in our databases because the people who designed those applications didn't take performance in consideration.I understand too well - and it is not that they did not take performance into consideration when designing the database, it is because the design is just plain wrong from the start.
    You do not need to consider amount of memory available, number and speed of CPUs, bandwidth and speed of the I/O system, in order to design a database. These have no relevance at all during the design phase. Especially as the h/w that will run the design in production in a year's time can be drastically different from the h/w that will be used today.
    No, instead you use a proper and correct design methodology and data modeling approach. Why? Because such a design by its very nature will make optimal use of h/w resources and will provide data integrity, scalability and performance.
    Again i think design of the database application must take database performance bottlenecks in consideration like application which doesn't use bind variables if they took into consideration to avoid that it will help the DBA in the future but unfortunately most people doesn't do that. And as I said - using bind variables or not has absolutely nothing to do with the basic question asked in this thread: "+what are the requirements of database design+".
    How does using/not using bind variables influence the design of a table? Determine whether an entity is in 3NF? What the unique identidiers are for an entity? These are the design considerations for a database.. not bind variables.
    Yes, SQLs not using bind variables can cause performance problems. Not paying the electricity bill can cause a power outage for the database server. So what? These issues have no relevance to database design.

  • Difference between database design and schema design

    Hi i have visited so many database websites and i found so many people saying we can design a data base for you. Is schema designing and database designing is the same. so many palces i find people saying we have to design data base first in order to create a physical databse. so i am little bit confused. are they same? and also what is the difference between data model and schema?

    > the definition i found for logical data model, physical data model and the definition you
    gave for logical database design, physical database design are the same.
    Not correct. The physical design is the implemetation of the logical design. These two designs are at different levels. Also, the logical design will be the same. irrespective of the RDBMS product use.
    What is incorrect is a designer/architect designing a logical design specifically for Oracle.. or specifically for SQL-Server. A logical design has nothing to do with the RDBMS product (or h/w platforms. app servers, web severs and operating systems used).
    So the logical design will always be the same - it is RDBMS independent.
    The physical design is fully dependent on the RDBMS product used. The same logical design will be implemented as different physical designs for Oracle and for SQL-Server.

  • Database design and pl/sql vs external procedures

    hi,
    My project involves predicting arrival time of a bus at a bus-stop, given statistical data of traffic patterns on the previous ‘n’(say 3) days, as well as the current location of the bus(latitude-longitude).
    Given current bus location, I derive my distance-until-destination bus-stop, which must be translated into time until arrival.
    Ive enlisted the triggers and procedures involved in making the prediction. Thse procedures especially the determination of perpendicular distances involve some complex trigonometric operations. I would like to know if my approach is correct and my database design is suited for the operations to b performed.
    Will it be more efficient to implement the procedures as external procedures or as pl/sql blocks
    This is my database design:
    LINKS ( a link is the road segment between adjacent bus-stops)
    LINK_ID                NUMBER      [PRIMARY-KEY]
    START_LATITUDE          NUMBER     
    START_LONGITUDE     NUMBER     
    START_STOP_ID          NUMBER
    END_LATITUDE          NUMBER
    END_LONGITUDE          NUMBER
    END_STOP_ID          NUMBER
    LINK_LENGTH          NUMBER
    BUS_ROUTE
    ROUTE_ID               NUMBER
    LINKS_ENROUTE          VARRAY(30) OF NUMBER
    STOPS_ENROOUTE          VARRAY(30) OF NUMBER
    TRACK(keeps track of current location of bus)
    BUS_ID           NUMBER          [PRIMARY-KEY]
    ROUTE          VARCHAR2(20)
    LATITUDE          NUMBER
    LONGITUDE          NUMBER
    TS               TIMESTAMP
    LINK_ID          NUMBER
    START_STOP     NUMBER
    END_STOP          NUMBER
    ARRIVAL_TIMES(actual arrival times of the bus, updated by track)
    BUS_ID           NUMBER     [PRIMARY-KEY]
    BUS_ROUTE          VARCHAR2(20)
    ARRIVAL          TIMESTAMP
    STOP_ID          NUMBER
    ETA (expected time of arrival)
    BUS_ID          NUMBER
    BUS_ROUTE          VARCHAR2(20)
    BUS_STOP_ID     NUMBER
    ARR_TIME          VARRAY(5) OF TIMESTAMP
    Triggers and procedures
    1)TRACK_TRIGGER
    On insert/update of track determine which link the us is currently on.
    Invoke a procedure that calculates perpendicular distance from current location to all links en-route (cursor on LINKS).
    Results are stored in a temporary table. Select the link-id of the tuple whose perpendicular distance is MINIMUM. This is the link the bus is currently on. Place link-id, start_stop_id and end_stop_id in corresponding row of TRACK.
    2)ARRIVAL_TRIGGER
    update ARRIVAL_TIMES.and store in ARRIVAL_TIMES that start-stop id with the time-stamp of the current track record.
    b)update ETA: Find the BUS-STOPS that come before the START_STOP of current track record. All these rows are deleted from the ETA tables, as the bus has already crossed these stops.
    3)Prediction Algorithm Procedure.
    Determine distance until destination for each STOP, 20 stops down from stop current location.
    Determine current avg. speed of the bus over a 2 hour window, by dividing total distance traveled by time taken.
    Calculate time-until arrival T1=current avg. speed * distance until destination
    From the records of previous ‘n’ days (say n=3) find those buses on the same route that were near the link the bus is currently on. Again determine avg speed over 2 hour window and calculate avg. speed.
    Calculate travel time T(i) = speed*distance until destination.     i.=2,3, 4…
    The final predicted arrival time is a weighted sum of all T(i).
    I hope Im not asking for too much, but the help would be greatly appreciated.
    Thankyou,
    Amina

    hello,
    actually i can manage ETA without a varray, since there will b a maxximum of 3 -4 values of expected arrival times at each stop. this can b done with separate columns.
    though i dont quite understand how lag() will help me...from what i understand lag() is to access values of previous rows. but in ETA table each element in the varray(if there is one) is going to be the expected arrival time of buses on a particular route at that particular stop, and is different from the arrival time at a previous stop(i.e.row).
    but for my other table BUS_ROUTE i have 2 varrays describing the links and stops enroute. in quite a few procedures i have to loop through these arrays and perform some calculations in every iteration is varray the best way 2 go, or nested tables?
    Thank you
    Amina
    As an aside, external procedures tend by their very
    nature to be slow - there's an overhead incurred
    each time we step outside the database. Therefore
    you really ought to avoid using a C extproc unless
    your calculations really cannot be done in PL/SQL or
    a Java Stored Procedure.
    Also, before you go down the VARRAY route you should
    consider the virues of analytic functions, notably
    [url=http://download-west.oracle.com/docs/cd/B1050
    1_01/server.920/a96540/functions56a.htm#83619]LAG()[/u
    rl]. I think you really ought to do some
    benchmarking of parformance before you start afdding
    denormalised columns like ETA. You may find the
    overhead in maintaining those columns exceeds their
    perceived benefits.
    Cheers, APC

  • Looks good in design and preview mode, online there is box in lower right corner! How to find box and delete it?

    www.nssgranite.com
    Online, scrolling down and to the right, there is a white box that is linked to a different web site of mine. I don't want that box to be there, but I can't find it in design mode nor preview mode when working with the Muse program. Where is it?? I want to delete it!!

    Thank you. However, I went in, expanded every single layer and did not see anything that was missing it's "eye". I clicked and unclicked everything that was a rectangle and found one rectangle that didn't seem to have representation on the screen. I deleted this rectangle from the layers box, uploaded the site to the internet hoping for the best, and unfortunately this did not solve the problem.
    I wonder, should I just create a new page from scratch to replace this page?
    I don't know if you've seen my other question, but this isn't the only problem I am having with my Muse site. The layout is distorted on all but a select size of screen, and most likely I am going to have to revamp things quite a bit to make them work on the average computer display.
    Thank you for any further suggestions because I am totally open to other thoughts on this!!

  • To get best database design

    Hello...
    I am going through one case study for the database design. and for this I want your view / suggestion regarding this.
    I have one table with 6 column
    create table test (
    id primary key,
    col1 varchar2(100),
    col2 varchar2(100),
    col3 varchar2(100),
    col4 varchar2(100),
    col5 varchar2(100))
    It might be possible that col1 value duplicated in col2 or col3 or col4 or col5 for some other raw.
    Now I have query that is require to search for the row by matching given value with all of 5 column col1 to col5. like this:--
    select * from test where col1=''pratik' or col2='pratik' or col3='pratik' or col4='pratik' or col5='pratik';
    I want to know, is this design is good for large table with millions of records into it.
    Is any other design is possible?? that is more efficient
    Thanks

    But in case of address, generally I am going to retrieve address for a give
    name or id. while in this case on basis of supplied value I have to search
    all 5 columnsNot necessarily. A search might be for all customers in a given postal district. But that is my point. I suggested address as a possible explanation for your requirements to fill a void.
    You have given us a strawman architecture and no clues about the underlying business premises. Under those circumstances all I can say is if you want to retrieve Col1, Col2, Col3, Col4 and Col5 for each ID where any of those columns matches 'Pratik' then I think your design is probably correct.
    Certainly I wouldn't want to suggest a different design without knowing why it is legitimate for the value 'Pratik' to appear in Col1, Col2, Col3, Col4 or Col5.
    Cheers, APC

  • Recapturing database design using designer6i

    We use designer as a tool to document our production database (basically use designer to store description for the tables and attributes). A promotion to the production database was made a while ago and we need to find a way to synchronize the repository and the production database.
    Does anybody know if we recapture the database design and retrofit table -> entity, will we lose all the descriptions already stored in the repository? Or is there a better way to do the synchronization?
    Thanks in advance

    Please check the Cameleon Open Source project at http://www.must.de/cameleon.html if ti fits your needs.

  • Any recommendations on productivity for database and project management, Bento was good but no longer sync with ical and address book

    I've unfortunately updated to the new Bento on MakBook and iPad and synced my data and in the process it tells me that iCal and Address books will not sync any more.  I have several projects I am working on and looking for something that will syn with iCal, address book and Busy Cal to manage my  time efficiently and seamlessly. Help?

    I think you're in the wrong forum - this is for developers, who write programs for apple products.
    As for Bento, their problem is due to Apple's changes in the API.  The code that syncs with calendars and contacts is now deprecated, which means at some point in the future, it will no longer work.  This problem will affect all developers, so you probably won't find any replacement for Bento.

  • EAV modelling approach on database tables and how to use it in Forms Dvl

    Hello,
    I am dealing with two tables in data modell which are structured on EAV ( Entity-Attribute-Value ) modelling approach.
    Survey( Survey# number not null,
    Start_Date_Of_Survey date not null ,
    End_Date_Of_Survey date null,
    Sts_Of_Survey varchar2( 4 ) not null ,
    Contractor_Partner# number not null, -- reference foreign key, to Partner's Table
    Survey_Report CLOB ) ;
    Survey# primary key of Survey.
    Meta_Survey_Parameter_Register( Parameter# varchar2( 40 ) not null,
    Additional_Parameter_Desc varchar2( 240 ) null,
    Type_Of_Value varchar2( 60 ) not null,
    Data_Type varchar2( 10 ) not null,
    Unit varchar2( 10 ) null,
    High_Value varchar2( 20 ) null,
    Low_Value varchar2( 20 ) null );
    Type_Of_Value Is restricted to : ATOMIC_VALUE, INTERVAL_VALUE_FROM_TO
    Data_Type is restricted to: Date, time, number( X,Y ), varchar2,
    Unit is varchar2 value not resstricted: for example: %, kg as kilo, m as meter, m/s as meter per second, null
    This table is meta table so it suppose to be used as some register - static part of the schema.
    Then I have table which attaches Parameters to the Survey as the association table
    Survey_Parameters( Survey#, Parameter#, Value, Comment );
    Primary key( Survey#, Parameter# );
    I need to implement this in Forms and Reports.
    My question is how to implement it to maximally make good use of Oracle forms 10g or 11g features and Oracle Reports 10g:
    a) when fulfilling the survey and use of parsing rules supplied in Meta_Survey_Parameter_Register
    b) at the producing as the survey report with reports
    c) in data analyisis in data warehouse impementations.

    Hello Craig,
    Thank you Craig for your answer.
    I must confess that I am also not familiar with EAV theoretical background and concept. Till recently I even did not know that this kind of problem could be placed
    in theoretical background called EAV. This put smile nad releive on my mind. Because since this moment I do not feel this kind of problem as some exception or
    some exceptional tools or data design ( object modelling and object databases ) suppose to be used. This way I can still counted on concepts in RDBMS databases
    and applications. Well I guess so.
    Let me comment and answer on your text between your lines.
    I am only conceptually familiar with EAV modeling, so I don't claim to be an expert! ;-) Given the abstract way in which data is stored with EAV, I would suggest that you first create a SQL Query that will produce the desired record set.
    Ok. But I guess you have in mind to transform vertical set of values to horizontal ( pivoting, transposing )?
    View has cast operator that transform data type of each parameter from general ( e.g. varchar2 ) to the one that is registered in the
    Meta_Parameter_Register. This way it is provided to get the survey with the list of assigned parameters in horizontal shape?
    Once you have this, you can either use the Query as the source of a Database View and then base your Forms data block on this view or you can use the query in a Procedure and base your Forms data block on the procedure or lastely, you could use the query directly and base your Forms data block on the query using the "From Clause" option.
    Ok, I think I understand it.
    So When I have horizontal list there is challenge during
    - insert
    - delete
    - update
    operations how to handle these operations to transform to vertical operation.
    This could only be done with Forms data block based on procedure and instead of triggers?
    The simplest option would be to create a DB view and base your block on the view. You will not be able to update the data however. If you need to be able to change or add new data, I would suggest you use a Procedure based block. Take a look at these links for additional information on using Procedure and From Clause based blocks.
    Ok Craig, sounds like it makes sense.
    IT seems your suggestion is caling for some simpler example with the same characteristic of the problem.
    Like two tables:
    Master( Master#, ..... )
    Detail( Master#, Detail#, value_low_or_just_value, value_high, data_type )
    Forms: How to base a block on a FROM clause Query
    Forms: How to base a data block on a Procedure
    Ok,
    Hope this helps,
    I see your point and it makes sense , it is only the challenge to see how much of flexibility I can reach and how cheap workarounds are to preserve
    the level of flexibility in the tools that are not naturally supporting EAV ( like forms and reports ).
    If someone's response is helpful or correct, please mark it accordingly.
    Sure...
    We are on the line.
    I am sure there is someone else in the community that experienced this kind of challenge.

  • New book! Physical Database Design: The Database Professional's Guide

    Morgan Kaufmann publishers have just released a new book on physical database design covering how to design indexes, range and hash partitioning, materialized views, storage layout, RAID, warehouse design and other physical design areas. The book covers Oracle and several other major databases. Lots of diagrams and examples. It's actually a really good book. An excellent book for people who design and administer databases.
    Available on Amazon and most other book sellers.
    Physical Database Design: The Database Professional's Guide to Exploiting Indexes, Views, Storage, and More
    by Sam S. Lightstone, Toby J. Teorey, Tom Nadeau
    Paperback, 448 pages, publication date: MAR-2007
    ISBN-13: 978-0-12-369389-1
    ISBN-10: 0-12-369389-6
    Series: The Morgan Kaufmann Series in Data Management Systems
    Link on Amazon:
    http://www.amazon.com/Physical-Database-Design-professionals-exploiting/dp/0123693896
    Link on the publisher's web site:
    http://www.elsevier.com/wps/find/bookdescription.cws_home/710637/description#description
    Comments on the book can be sent to: [email protected]

    how could we get the report of previous five years sale of the products.
    SELECT trunc(sale_date, 'YYYY'), sum(sale_qty)
    FROM   sales
    WHERE  sale_date >= add_months(sysdate-60)
    GROUP  BY trunc(sale_date, 'YYYY')
    suggest whether dropped Product name from the sale table as I already have a column prodid in it?Yes. Duplicated data is a Bad Thing. This is Rule #1 of the late Dr. Codd's 12 rules. These are the foundationstones of good relation design. Wikipedia has a good introduction to them.
    Cheers, APC

  • Need Good Web design books - already a print designer

    I'm already very familiar with photoshop, illustator, and indesign and have been using them for years.  I'm now looking to start learing web design and need suggestions on a good book or books that aren't just about dreamweaver or fireworks, but rather something covering the intergration of applications as well as the basics. Any suggestions?
    thanks

    daevaux,
    For a start, you may have a look at the one mentioned by Kath in this thread: http://forums.adobe.com/thread/437013?tstart=0
    Her post itself is also worth reading, as always.

  • Best book for designing and architecting a java application?

    Hi,
    Please recommend the best book(s) in the market or on line tutorials which would help me architect and design a java application using SWING.
    I have used most of the swing components in many small GUI apps I have developed [JTable, JTree, etc, etc ....] and do not need a beginners books [online tutorials at sun site are good for that]. A book tackling advance topics, which may not concentrate on coding but has very good cases to understand the design [both class level and usuablity] and architecture of the application.
    I need to develop an editor for a GUI based language + a code genertor + mapper application [which will run as a application and may use webstart to run from a browser.]
    THANKS !

    I like "Pure JFC Swing" it's got a well written example for each and every Swing component. When I was learning to use swing each component I came across I could easily look at the example for that component and incorporate it into code for my app. That combined with the Javadoc was all I've ever needed.

Maybe you are looking for

  • Fields transferred to payment & contract changes table

    Dear all, I'm having 2 problems: 1). In the payment program (F110) we make a selection based on the field XBLNR of the FI document (which contains a datestamp + 'REPP' or 'REOP' depending on periodic or one time RE posting). Payments are split betwee

  • Adding company logo to outgoing messages

    Is there a way to add a logo to all outgoing messages from an IronPort appliance?

  • Custom reports issue

    Hello, Grid Controle 11.1.0.1 on 11.2.0.1 database OS: SLES10 64 bit There are Standard Reports in Oracle Grid Control, not only in Grid 10g , also in my 11g version. For example the report: Availabilty History (Group) shows nice icons for 'Up' and '

  • Create a table and upload data in MS ACCESS from SAP ABAP programming?

    Hi All, How to create a table in MS ACCESS database and Upload SAP database table data into MS ACCESS table using ABAP programming? Explain: My client requirement is " If he/she runs a ABAP Program, that will create a table and upload data into MS AC

  • Migration.bat -actions=info returns an exception

    Hi I'm migrate from MS SQL 2005 to Oracle 11g using SQL Developer V3.0.04 using the batch file migration.bat. Everything worked fine. Since I moved to a new system I run into a oracle exception: PS C:\Program Files\Oracle\sqldeveloper\sqldeveloper\bi