A program depends on data to be properly stored and handled. The
data storage format selected must be appropriate for what the program
intends to do. Data can be stored as a file or a database - object-
oriented, relational, multidimensional. The selected data storage format needs
to consider processing efficiency to make the program as fast as
possible while maintaining reliability, security, and availability. A relational
database is the most used database. A relational database is a collection
of tables, which each contains a primary key, that can be related to
each other using the primary key to tie them together. Relational
databases allow for referential integrity which allows the database to
ensure that the information is valid. Structured Query Language (SQL)
is the standard language for access the data.
NoSQL databases do not use the relational model or SQL. These can
include document-oriented databases, wide column stores, and graph
databases. These databases support high transaction rates and can store
audio, video, and image files which do not fit well into a relational
structure. System, language and databases are very important when putting
together information systems. The data base is going to be where all
the information that the code is creating is going to be stored in.
The language is going to be what combination of characters are used
in order to retrieve the information. Have a good understanding of
databases is good for being able to troubleshoot errors of food, and
the proper way of maneuvering around effectively. Program design and
data storage design work hand in hand to ensure efficient and effective
system development. Program design can be understood as the blueprint
for a software application responsible for things such as functionalities,
algorithms and interactions. Data design is responsible for the organization
and storage needed from the software. Accessing information is important
and program design has to work around data storage design to make
sure accessing information is quick. Program design propels data storage
design. The design of the program will decide the types of data to
be stored, their relationships, and access patterns. This will also sway
the data storage design decisions like the choice of database model.
On the other hand data storage design determines program design. The
chosen data storage design affects the program design in terms of data
retrieval, manipulation, and storage operations. The program has to be
compatible with the chosen data storage solution efficiently.When comparing
two types of databases I think it is a good idea to consider relational
databases (SQL) and NoSQL databases. Relational databases use a
structured schema to organize data into tables with predefined relationships.
They provide efficient data consistency and support powerful querying
capabilities through SQL. Relational databases are suitable for applications
with well-defined schema. An examples would be banks. NoSQL databases
are designed for handling large volumes of unstructured/semi-structured data.
They offer flexible schemas and horizontal scalability. NoSQL databases
come in different types such as key-value stores (Redis), document
databases (MongoDB), etc. NoSQL databases are commonly used in
applications requiring high performance, scalability, and real-time data
processing, such as Instagram. To begin, program design and data storage
design are closely related and dependent on each other. Program design
determines the structure and functionality of the software, while data
storage design determines how the data is organized and stored within
the software. The data storage design will depend on the program
design due to the fact that the design of the program will affect
its size, accessibility and change how the data is kept in the program.
Because of this the data storage will be significantly impacted by the
architecture of the project. The two types of databases I will be
getting into are single-file or file database.
and multi-file or structured database. Single-file database cross-platform
and can be accessed on any machine. You would use file databases
in the event of storing the username and password, entities and
attributes, contact details and product details. You would use a structured
database in scenarios where there is need to store the known structured
data which posses a finite individual or a finite application that are
accessing the database.
Program design and data storage design are closely interrelated in the
context of database systems. Program design involves designing the
software applications that interact with the database, while data storage
design focuses on designing the underlying structures and mechanisms for
storing and retrieving data efficiently. The relationship and dependencies
between the two can be summarized as follows:
1. Data Access and Manipulation: Program design heavily depends on
the data storage design to efficiently access and manipulate data.
The structure and organization of the database affect the design
of the program's queries, transactions, and data manipulation
operations.
2. Performance: The program design and data storage design impact
the performance of the system. The efficiency of the data storage
design, such as indexing strategies, partitioning, and caching
mechanisms, can influence the performance of program operations
that rely on data retrieval and updates.
3. Data Integrity and Constraints: Program design and data storage
design collaborate to enforce data integrity and constraints. The
program design defines the logic and rules for data validation
and enforcement, while the data storage design implements
mechanisms like primary keys, foreign keys, and constraints to
ensure consistency and integrity.
4. Scalability: Program design and data storage design play a vital
role in achieving scalability. The program design should be scalable
to handle increased user load and changing requirements, while the
data storage design should support efficient data distribution,
replication, and partitioning to scale horizontally or vertically.
Now let's compare and contrast two types of databases: relational
databases and NoSQL databases.
1. Relational Databases:
2. Relational databases store data in structured tables with predefined
schemas. They use SQL (Structured Query Language) for querying
and manipulating data. Relational databases are known for their
strong data consistency, ACID (Atomicity, Consistency, Isolation,
Durability) properties, and support for complex relationships between
entities. They are suitable for applications that require data integrity,
transactional consistency, and complex queries. Examples of use
cases include:
• Banking systems: Relational databases ensure the accuracy and
consistency of financial transactions, enforce constraints, and support
complex queries for generating reports and analytics.
• Enterprise resource planning (ERP) systems: Relational databases
provide a structured approach to manage various business processes,
such as inventory, sales, and human resources.
1. NoSQL Databases:
2. NoSQL databases are designed to handle unstructured and semi-
structured data. They offer flexible schemas, horizontal scalability,
and high availability. NoSQL databases do not rely on fixed table
structures and support various data models like key-value, document,
columnar, and graph. They are suitable for applications that require
massive scalability, high write throughput, and schema flexibility.
Examples of use cases include:
• Social media platforms: NoSQL databases can handle high volumes
of user-generated data, such as posts, comments, and likes, with
ease. They provide horizontal scalability to accommodate millions of
users.
• Internet of Things (IoT) applications: NoSQL databases can handle
diverse and unstructured data generated by IoT devices, such as
sensor readings, logs, and geospatial data, efficiently.
In summary, the choice between relational and NoSQL databases depends
on factors such as data structure, consistency requirements, scalability
needs, and the nature of the application. Relational databases are well-
suited for structured data and applications that require data integrity and
complex queries. NoSQL databases excel in handling unstructured data
and providing horizontal scalability for applications with high volumes of
data and varying schemas.
Relationships and conditions are how a component uses or depends on
other components.
Level 2 - Relationships and dependencies between program and information
storage design
Information storage configuration is based on the program schedule. This
is especially evident in the way program organization affects the size
and how it is achieved, and thus how information storage is performed
in the program. Information storage is therefore heavily influenced by
program planning.
Different information stores are created for each exceptional piece of
primary information. This shows that it is possible to adjust the
program's programming schedule. One model is the different information
storage of DAS and NAS, leading to contrasting program plans.
types of information bases
There are two types of information databases -
1) Single record or document information database -
Records of this type are user names and secret phrases, items and
properties, contact details, and when deleting item details used for
2) Multi-Record or Structured Record -
This type of record is used in situations where it is necessary to
store organized information that is expected to be reached by a limited
number of people or applications.
Databases and data storage are an integral part of systems development,
deciding on which database and data format to use will dictate how
efficiently the system will operate. It is important to choose the correct
database when designing the system, or the user experience might be
diminished and the system will be a failure. Relational databases are
the well known and structured query language, or SQL, is used to
access the data stored. Other types of databases include, legacy database,
object-oriented database, and NoSQL database, just to name a few. They
each are used in a scenario to maximize the efficiency of how the
data is accessed, and each has disadvantages and advantages, that should
be taken into consideration. For example, object-oriented is best used
when supporting audio and video data types. Netflix and other over
the top streaming services can utilize this type of database, since their
systems encompass complex audio and video and many of them use
object-oriented programming. However, these type of databases can cost
much more than other types of databases, and they are not widely
accepted. NoSQL databases are used with big data. Many companies
utilize this big data in order to compile data so that they can use
that data for marketing and other research. Grocery store bonus programs
entice people to sign up for their programs, so that they can collect
data from the consumers so that they can track shopping data. It is
important to read privacy policies in order to know how companies
use the data that we give them access to. Program design and data
storage design are not unlike symbiotic lifeforms; as they need each
other to work. The program design phase directly affects the data
storage design and vice versa because of the way it'll all work in
the end. Your end-users will use the program to access and manipulate
the data [storage] when the project is completed, so it is essential
these two design phases are coordinated. The type of data storage
design will depend greatly on the type of program being developed
and for what industry/project it's being developed for. Relational databases
are most common with their management systems being terms we've
heard like SQL. They tend to be used for a lot of banking and
general business management systems. There are other types of databases
that are not relational such as NoSQL as well, these generally are
utilized in systems that deal with a large volume of unstructured data
and have far more flexibility. These tend to also be a lot more
scalable in design and work well in cloud computing. Program design
and Data design work closely together and need each other with the
development of systems. The logical design of the program can directly
influence the design of data storage. Data storage design provides the
necessary infrastructure components to store and retrieve data required by
the program. It ensures that the data is organized and accessible based
on the programs needs. The dependencies and requirements of the
program can also influence the design of the data storage. A relational
database organizes data into tables. They use a structured query language
(SQL) for manipulating and querying data. They establish relationships
between tables using keys. Thes are databases are for example My Sql
and Orale. No SQL databases or Non -relational databases are designed
to handle large volumes of unstructured data. They have flexible schema
designs allowing for scalable storage and often used in cloud computing
environments. Program design and data storage design is a big part
of the design phase in the SDLC life cycle. The program design is
the layout of the program before it is actually coded in a chosen
coding language. If done correctly it'll make the life of the program
longer. The data storage design establishes the data storage format. It
shows how data is managed and stored. Multimedia database is a data
base that stores multimedia such as audio, videos, and images. This
database can be used in many things. You can use it in creating a
webpage. Although there may be I have not seen any websites without
images. You could also use them in video games which contains all
audio, video, and images. Another database is the NoSQL database. This
database is for storing and retrieving data. NoSQL databases are typically
faster when storing and retrieving information and are considered more
flexible. What I would use this database for is customer tracking,
online shopping, and big data. I can't cover all of what these two
databases can do or are capable of but that's the basics. Program
Design models explains how your organization defines
• Value proposition: how your organization distinguishes itself from
the competition yy
• Products and services: what your organization offers, how those
offerings work, and why your prospects need them
• Impact: the measurable change your organization expects to make
yy
• Partners and customers: who your organization seeks to collaborate
with and serve yy
• Talent: who and how your organization recruits team members
• Resources: the tools and connections your organization needs to
succeed and how you will acquire and maintain them
• Revenue: how your organization will financially sustain and grow
its efforts
Data storage Design is how data storage and handling by programs
running the system takes place.
The main steps of data storage design are to:
• Select the data storage format
• Convert the previously made logical data model into a physical
data model
• Ensure that the ERDs and DFDs balance
• Design the selected data storage format to optimize its processing
efficiency
Program and design work together when gathering and storing data. The
dependence between the two has to do with the program design meeting
conditions of data design in order to keep them working in sync.
The program design can have a direct impact on the data storage
design since the architecture of the program will affect its size and
how it is accessed, thus changing how the data is stored in the
program. Varied data stores are created for each different structural data,
indicating that the program design will change. An example of two
types of database storage is direct-attached storage (DAS) and Network
accessed storage (NAS), which create variations in the program design.
DAS “is a digital storage system directly attached to a host computer
accessing it. Examples of DAS include:
• Internal hard drives and SSDs
• External hard drives and SSDs
• CDs
• USB flash drives” (Ciphertex, 2021).
NAS “refers to a self-contained storage system that’s attached to a
local area network (LAN) or a wide area network (WAN). All devices
connected to the network can be granted access by the network
administrator to the data stored on the NAS system. It comprises
portable NAS servers and network management software that permits
different users to log in to the storage system.” Two forms of
databases are single-file and structured. A single file database is used
to store things like username and password, contact and product details.
A structured or multi-filed database is used to store the unpredictable
and unstructured data which posses a finite individual or a finite
application that is accessing the database. Data storage designs are
incorporated into program design, which also decides how data should
be kept and the ideal storage format for each sort of data. Program
design and program requirements serve as the foundation for data storage
design. The type of software, as well as the program's demands for
speed and security, must all be considered in the data storage
architecture. The relationship between the program design and data storage
design is that they both have to work simultaneously for the retrieval
and saving of data. As far as dependencies, the program design has
to meet the given condition of the data storage design to work out
in a unison and the program design is responsible for querying and
saving the data in the data storage.The 2 types of databases I would
like to discuss is the relational and non-relational databases. The
differences between the two is that the relational databases store data
in rows and columns, similar to a spreadsheet, whereas non-relational
databases do not. Applications that require data to be structured in
tables, such accounting systems, use these databases. It's important to
take your application's kind into account when choosing the sort of
database to utilize. Relational databases work best for applications like
accounting systems that need data to be kept in tables. Applications
like document stores and web apps that don't need the data to be
structured in tables should use non-relational databases. The relationship
between program design and data storage design is that they work
together to make a functional system efficient for the user. Program
designs are instructions developed in programming languages that automate,
collect, manage, calculate, and analyze the processing of data and
information accurately. There are three broad areas of activities:
understanding the program, using design tools to create a model, and
developing test data. On the other hand,
data storage designs process information and stores files or folders by
computer decoded into a form that is efficient for movement or
processing and can be in the form of text, documents, images, audio,
or clips. Programs are used to speed up input and output processes
in a machine. While data is used to establish a baseline and help
one to visualize the relationship among the different locations, departments,
and systems.
Types of databases:
Cloud Database is a hosting solution given by a third-party provider.
It is a pay-as-you-go solution minimalizing initial investments needed to
acquire data space while expanding as more resources are required.
On-premises database is an in-house database. Therefore, all the software,
infrastructure, and administration needed for support is local.
Between the two, my choice would be the on-premises database because
of the security and control. In addition, it's best for storing sensitive
information since it's in-house. The user is in control of the information
providing levels of regulations and privacy. The relationship between
program design and data storage design is highly interconnected, with
each impacting the other significantly. Program design determines the
software application's structure and logic, including data manipulation. Data
storage design focuses on efficient organization and storage, ensuring
accessibility and integrity.
Relational databases (e.g., MySQL, PostgreSQL) arrange data into tables
with predefined schemas, supporting complex relationships. They excel in
scenarios requiring data integrity, like financial systems or e-commerce
platforms. NoSQL databases (e.g., MongoDB, Cassandra) offer a flexible
schema-less approach, facilitating fast storage of unstructured data. They
suit high-performance applications with evolving schemas, such as social
media platforms or real-time analytics.For instance, an online marketplace
may rely on a relational database to ensure consistent product inventory
and orders. Conversely, a social media platform handling vast user-
generated content may choose a NoSQL database for scalability and
accommodating dynamic schemas. In summary, the choice between database
types hinges on application requirements. Relational databases ensure
integrity for structured data, while NoSQL databases offer scalability and
flexibility for unstructured or rapidly changing data in high-performance
scenarios. The relationship between program design and data storage design
is like how we fly in the airport. In the airport we have planes,
gates, passengers, and security that allow us to safely travel to our
destination. The whole airport is the program design that tells us where
to go and when to go. The planes are the tables that stores a
common trait of data or in this case where is the plane going.
They both are needed to make the whole airport function properly and
people are in the correct flight. The airport also needs to guide other
planes that are arriving to a correct place and also needs to guide
the plane that are departing to correct location. With all that in mind,
the airport those have a temporary place for passengers to be stored
till their plane arrives and sends them off to another airport where
they can arrived at their correct location. Just like the airports the
program design also have security built to make sure all the passengers
have ID and that they are safe passengers to make the travel.
Hopefully I made sense in this comparison.They are several types of
database out there but SQL and NoSQL is the most common database
that people use for their projects. SQL organize data into tables with
predefine relationship between them. where as NoSQL is unstructured
database where it does not need table to be stores. It is useful for
fast growing data and rapidly changing data also. Really difference in
program designing and then data storage design is really how information
may be handled. as if lets say I wanted to design a data storage
facility to just be one big dependency, it would work out great as
it would provide a lot of failsafe’s for a company trying to keep
documents in the event of a disaster. This being that your network
will go down and then you will be left without the information
needed to perform the job or documents. This is where let’s say you
have 30 locations, but now there is 30 copies of the same file
across the whole network making it hard for one to go down and
not one to have it.
Program design is more of the physical appearance of the program for
the end user and how it is designed internally to run while in use.
This is the back end developing of the program and the physical
feel of the program to the user. This makes or breaks a website,
app, game, company. If you do not have any of the right program
designs in place, it could be the collapse of a business, game, or
app. This is a fundamental piece whether technilogical or analytically
speaking.
However, these two may have differences, they are both very similar,
as they both contribute to the same aspect, you cannot really run
and deploy an app nowadays without a homestation in which you can
provide updates to said app, and if you do not have a data storage
"center" then in reality, you cannot run a program effectively for a
profit. Looking at the program design, it is something that makes a
company look good, whether it be promoting the company itself, or
integrated within to their technological programs. Data storage design is
the first simple activity that is less complex, modular, and efficient
program structures that is the design activities are listed in entity-
relationship diagrams where the information is stored. These diagrams are
used to show the relation between the various component of the
database. n the other hand, program design shows how data will be
how the organization will develop the program itself. This involves
several stages that are the research, consultation, initial designs, testing,
and redesigning. In terms of relationship between program design and
data storage design is that for the data storage to be accessed on
they both must work simultaneously for the retrieval and saving of the
data. In terms of dependencies the program design must meet the given
condition of the data storage design to work out in a unison and
the program design is responsible for querying and saving the data in
the data storage.The two types of databases are relation and non-relation
databases. In relation database data is stored in an organized way in
tables according to how it relates to each other while in the non-
relation database data is stored in a non-tabular way that is database
will use different ways for managing, accessing, and storing the data.
According to security one prefers to use the relation database since
the non-relation has weak security which may concern the large scope
of data in the database. Hence one prefers to use the relation for
security purposes. The other reason is the type of data to be stored
in the database to be chosen this is concerned with an example in
a school where student information is stored in a database. To ensure
that it will enhance the easier search of data the staff will choose
to take the relation. Since the student information is grouped in a
similar way hence easier to search. The relationship between program
design and data storage design is crucial in developing efficient and
functional software systems. The critical aspects of the program design
dependencies include the data model, data integrity, and performance
considerations. The program design heavily depends on the data model
used for storing data. Program design also depends on data storage
design to ensure data integrity. The program design needs to consider
the performance characteristics of the underlying data storage design.Data
storage dependencies on program design are Data structures, Data access
and manipulation, and Security and privacy. The data storage design
relies on the program design to determine the required data structures
for efficient data storage. The program design determines the ways data
will be accessed, queried, and modified. The data storage design needs
to accommodate these requirements by providing appropriate access methods,
APIs, and query interfaces that align with its needs. Two types of
databases are relational and NoSQL. Relational databases are based on
the relational model and use structured query language (SQL) for data
management. They organize data into tables with rows, columns, and
relationships using keys. Relational databases commonly store product
catalogs, customer information, and order history. Banking systems also
use relational databases. NoSQL, which is “not only SQL” is designed
for handling larger-scale, unstructured data. They offer flexible schemas
and horizontal scalability. NoSQL databases are commonly used for storing
and processing large volumes of unstructured data, such as social media
feeds, or log files. Program design and data storage design are closely
interconnected in building an efficient and functional system. Program
design focuses on creating the logic and structure of software applications,
while data storage design concerns the organization, storage, and retrieval
of data within the system.
The relationship between program design and data storage design lies in
the fact that the program design dictates how data is processed,
manipulated, and utilized within the application. The program design
determines the data structures, algorithms, and operations required, which
in turn influence the design of the data storage system. Conversely,
the data storage design influences the program design by providing the
necessary structures and mechanisms to store and access the data
efficiently.
When it comes to comparing and contrasting two types of databases,
let's consider Relational Databases (RDBMS) and NoSQL databases.
Relational databases, such as MySQL and PostgreSQL, organize data into
tables with predefined schemas, enforce data integrity through constraints,
and support powerful querying capabilities using structured query language
(SQL). They are suitable for applications that require strict data
consistency and complex relationships, such as financial systems or
inventory management systems.
On the other hand, NoSQL databases, like MongoDB and Cassandra,
provide a flexible, schema-less data model, allowing for easy scalability
and handling of large volumes of unstructured or semi-structured data.
They excel in scenarios where data variability and high-speed data
ingestion are crucial, such as real-time analytics, content management
systems, or social media platforms.
The choice between the two types of databases depends on the specific
requirements of the application. For instance, if you need to maintain
strong data consistency and have complex relationships between entities,
a relational database is a suitable choice. In contrast, if you anticipate
a need for horizontal scalability, flexibility in data schema, or handling
large volumes of unstructured data, a NoSQL database would be more
appropriate.
For example, an e-commerce website that needs to store and manage
product catalogs, customer orders, and inventory levels with complex
relationships would benefit from a relational database. On the other
hand, a social media platform that deals with high-velocity data streams,
user-generated content, and requires flexible schema to accommodate
changing data structures would find a NoSQL database like MongoDB
more suitable. A dependency is a constraint that applies to or defines
the relationship between attributes. It occurs in a database when
information stored in the same table uniquely determines other data. You
can also describe this as a relationship were knowing the value of
one attribute (or a set of facts) is enough to tell you the value
of another feature (or group of attributes) in the same table. Database
dependencies often need to be clarified for students and database
professionals. Fortunately, they are not as complicated as they may seem.
For example, a complete functional dependency occurs when you already
meet the requirements for a functional dependency, and the set of
attributes on the left side of the functional dependency statement cannot
be reduced any further. For example, {SSN, age} name is a functional
dependency. Still, it is not a full functional dependency because you
can remove age from the left side of the statement without impacting
the dependency relationship. so, Database dependencies are important to
understand because they provide the basic building blocks used in
database normalization, the process of efficiently organizing data in a
database. For a table to be in second normal form (2NF), there must
be no case of a nonprime attribute in the table that is functionally
dependent upon a subset of a candidate key. Designing
Program design is a framework for building software or coding programs
in a specific language that helps to create software or applications.
Creating such a model requires a normalized database design that moves
from the logical to the physical process; the logical develops the
technical set of rules and data structures. The physical process is
implementing the database, laying the groundwork for incoming and
outgoing data flows, and designing pathways determining data storage.
Both models represent the design layer for application development.
Furthermore, software design is vital in understanding the technical and
operational of the program and gathering information about the business
need, such as specific aspects of user and system interfaces, databases,
and networking.
Database
There are various types of databases, such as MySQL, Oracle, Postgre
SQL, and Sybase A database is a collection of data or information
that can be quickly accessed and managed into rows, columns, and
tables, and indexing help in finding relevant information.
Relational Database
A relational database storing data in rows (tuples) and columns (attributes)
uses SQL to manage and maintain data storage; this format allows to
establish a link between information. The attributes are primary keys
that connect to each tuple (row) that creates a relationship to each
table using a foreign key. (What is a relational database?, n.d.).
Commonly seen for accounting purposes, it is easy to use, flexible,
and maintains the transaction's accuracy before and after the transaction
history database follows the ACID properties. For example, when
transferring funds between accounts. Account A has $500.00 and wants
to move $100.00 to account B as a balance of $200.00; as each
transaction passes between each account, where database input and output
follow these properties
he data storage design will depend on the program design. This is
especially true owing to the fact that the program design will affect
the size as well as how to access it therefore affecting how the
data is stored in the program. Therefore, the data storage will be
greatly affected by the program design.
For each unique structural data, there is the creation of different data
store, and this implies that there will be a change in the program
design of the program at hand an example is the different data
storage in the DAS and the NAS which causes differences in the
program design.
Type of databases:
There are two forms of databases
• Single-file or file database
This type of database would be used in the event of storing the
username and password, entities and attributes, contact details, product
details.
• Multi-file or Structured database
This type of database would be used in scenarios where there is a
need to store the predictable, structured data which possess a finite
individual or a finite application that are accessing the database. The
design phase transition from a logical to physical process were the
analyst start to layout the program and its data flow. This begins the
creation of the relationships between the program and database designs.
The program design will consist of the structure, its purpose, and what
it is going to accomplish. The data storage design will be how that
software stores or interacts with that data being processed. The program,
either built in-house or procured, must take into account how it will
create, store, use, or change that data. The reading this week discussed
several database types that can be used for this design, and the two
I found most interesting are relational databases and multidimensional
databases. Relational databases are the most common I have found in
my workplace. This type of database uses tables, rows, and columns,
linked through keys using SQL queries to access the data. Use case
would be inventory, process, logging. An example could be a customized
inventory system, in our case we use Filmmaker Pro as part of our
system to track industrial control system equipment. This program interacts
with SQL database to house all the information. All the forms are
custom made but everything else is COTS and manually entered. The
benefit is that it is an easy way to represent and find that data.
As for multidimensional databases, I find this interesting because it is
used for a data warehouse. Everything I have read is that this seems
to be Artificial Intelligence driven allowing online processing to draw
from dataset to present a conclusion on a question asked. Use cases
appear to be all consumers driven applications such as sales or social
media. A good example is Instagram application interacting with these
datasets to push content to the end user.