Starting from:

$25

CSC5408-Final Project Solved

    
Project    Objective:        
By    completing    this    project,    a    student    will    be    able    to    describe    concepts    in    modelling    notation    (e.g.,    Entity-Relation    Diagrams    or    UML)    and    how    they    would    be    used.    A    student    will    be    able    to    describe    the    most    common    designs    for    core    database    system    components    including    the    query    optimizer,    query    executor,    storage    manager,    access    methods,    and    transaction    processor.    By    completing    this    task,    a    student    will    be    able    to    explain    the    techniques    used    for    data    replication,    and    allocation    during    the    database    design    process   
    
In    this    project,    each    group    is    required    to    create    a    light-weight    relational    database    management    system    (e.g.    metadata    management,    data    structure    design,    data    storing,    retrieval,    building    database    and    logs,    analysis,    and    security),    with    custom    database    structure    for    in    memory    operations    using    various    data    structures    such    as    Arrays,    Tree,    Linked    Lists    etc.,    and    custom    file    design    for    persistent    storage.    
    

 

In            this        project, you        need      to            build     a              simple  relational            database              (RDb),  and its           database              management     system (RDbMS).            Your      team     should  explore data       structure concepts             for          creating               the         databases.           In            addition,              your      team     should create   a              programming   framework        that        can         work     as            a              RDbMS application         layer. Your      database              should  handle  multi-user          (2           users)   requests.             The        database management     system layer     should  provide                a              command-line interface             (Graphical          User Interface             is             not         required),           and        perform              various functionalities  of            relational database              management     system.                


Expected           functionalities   of            5408_RDbMS_Custom(RDb)       
 
You        do           not         have      to            implement         these     in            Phase    1;                Only      report   is             needed in            Phase    1
 
•       Create,  manage                databases            with      at            least      2             users,    and        provide                MFA                (multi-factor    authentication)                for          users.    E.g.         encrypted           password,           and                security               question              

•       Accepts                user       inputs   in            standard              SQL        format only       from     standard              I/O                console 

•       Process                the         queries and        converts              those     into        instructions       for                create/delete/update/alter/select         operations          etc.                         

•       Select    and        implement         data       structures           which   will        be           used      for          in                memory              operations          of            the         database.             E.g.         after      query    execution,                the         processed           query    will        be           added   in            a              stack     for          execution.                Once     done,     any        permanent         changes               will        be           reflected             to            the                custom RDb       file         in            the         persistent           storage.                                                

                

•       Conceptualize   and        implement         a              custom file         format for          persistent           storage                (JSON/CSV         or           standard              file         formats               are         not         accepted).          
               

•       Creation              of            various dynamic              logs        such      as,                           o General            Logs:                query    execution            time,     state      of            the         database              (e.g.       how       many                tables    are         there     with      number               of            records                at            a              given     time)                

o   Event   Logs:     changes               in            database,             concurrent         transactions,     crash               reports,                etc.         

o   Query  Logs:     capture                user       queries and        timestamp         of            query    submission               
               

•       Depending          on           the         design   -              creation               of            Data      dictionary,         metadata,                and        lower    limit/upper       limit      of            datatypes            etc.         

•       Options                to            specify constraints.        

                

•       Option  to            create   SQL        Dump   (table    structure             and        values) 

•       Locking for          concurrency       control  -The      RDBMS must     follow  ACID     properties          and                implementation              of            two-phase          locking 

               

•       ERD       The        RDBMS should  create   simple  ERD       from     existing                databases            (data                structure).          The        concept               of            ERD       generation          is             identical              to                reverse engineering        that        is             available             on           standard              commercial                DBMSs. However,            the         ERD       does      not         have      to            be           graphical.                Information      such      as            cardinality,        entity    names, relationships,    and        primary                key,       foreign key        constrains          should  be           captured             on           a              text        file                as            ERD.                      
                          

•       Capture                screenshot         of            meetings;            and        write     down    the         discussed                agenda.                (You      do           not         need      to            keep      video    recordings)        

•       Select    a              programming   framework        and        related technologies.     Provide               written                explanation        for          your      selection.            

o    [Note:           You        need      to            use         core       Java       programming.        For         in            memory              operation            or           buffers, you        can         only       use         standard              data       structure             (e.g.        arrays,  linkedlists,          tree        etc.).      

o   You                cannot  use         JSON/CSV           for          capturing        records.               o You   cannot  use         any        external        libraries               or           3rd          party     libraries]             

•       Explore                Data      Structure(s)      that        is             suitable                for          your      relational                database              

•       Document          your      plan                       o create               flowchart           highlighting       the         operations                of            the         DBMS   5408_RDbMS_Custom(RDb)     o Write                the         assumptions      

o   Add                your      initial    algorithms         or           pseudocodes     o Write            initial    Test       cases     for          performing        the         unit        tests      

•       The        database              should  handle  integer, real        numbers,            and        text        data                     

                

Task       for          Phase    2             (Go-Live              and        Project  Closure):             Due        End        of            Term     
•       Implementation              of            the         system 

•       Performing        Unit       Test       and        Validation           Test                       

•       Each      group    will        submit a              pre-recorded    group    video    presentation      of            maximum                1             hour      highlighting       various components      of            the         project, and        the                working              model.                                  

o The            details  of            the         pre-recorded    presentation      will        be           posted  on        Teams. 
                

•       There    will        be           a              synchronous     Q&A      session with      each      group    at            the         end                of            the         project. 

        •      

•       Detailed               documentation of            meeting               logs        screenshots,      use         case,      test                cases,    pseudocode,      evidence             of            testing, team     and        individual                contributions,   limitations         etc.         in            the         form     of            a              final       report.  

•       Each      group    will        submit a              report   (10         to            15pages)             at            the         end        of                the         final       project Q&A      session 

More products