summaryrefslogtreecommitdiff
path: root/doc/unit-6.md
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-02-04 18:42:30 -0700
committermo khan <mo.khan@gmail.com>2020-02-04 18:42:30 -0700
commit2bedd2a3f3d5e90dd5bf3a8b7adbabc1fc489e45 (patch)
tree81ff526d5a64cde3049b9084c6530ce478dac74f /doc/unit-6.md
parentca6a322c04067150f014c270b0d21cbb77c2755f (diff)
Add unit 6 notes
Diffstat (limited to 'doc/unit-6.md')
-rw-r--r--doc/unit-6.md97
1 files changed, 97 insertions, 0 deletions
diff --git a/doc/unit-6.md b/doc/unit-6.md
index 85a26fb..c17ba06 100644
--- a/doc/unit-6.md
+++ b/doc/unit-6.md
@@ -11,8 +11,105 @@ Read Chapter 8 "Database Application Development":
* databases in three-tier architectures
* key considerations in three-tier applications
+### Client/server architectures
+
+ | presentation logic |
+ | processing logic (business rules) |
+ | storage logic |
+
+> Application Partitioning: the process of assigning portions of application code to client or server
+> partitions after it is written to achieve better performance and interoperability (ability of a component to function on different platforms).
+
+> Fat client: A client PC that is responsible for processing presentation logic, extensive application and business rules logic and many DBMS functions.
+
+Two tier architectures
+
+|--------|
+| Server | * storage logic
+|--------|
+| Client | * processing logic
+| | * presentation logic
+|--------|
+
+|--------|
+| Server | * storage logic
+| | * processing logic
+|--------|
+| Client | * presentation logic
+|--------|
+
+
+n tier architecture
+
+|--------|
+| db | * storage logic
+|--------|
+| app | * processing logic
+|--------|
+| client | * presentation logic
+|--------|
+
+|--------|
+| db | * storage logic (postgresql)
+|--------|
+| app | * processing logic (ruby on rails)
+|--------|
+| web | * processing logic (nginx)
+|--------|
+| client | * presentation logic (firefox)
+|--------|
+
+
+> database server: A computer that is responsible for database storage,
+> access, and processing in a client/server environment.
+
+* middleware: software that allows an application to interoperate with other
+ software without requiring the user to understand and code the low-level operations
+ necessary to achieve interoperability.
+
+* API: set of routines that an application program uses to direct the performance
+ by the computers operating system.
+
+* Open database connectivity (ODBC): An API that provides a common language for
+ application programs to access and process SQL databases independent of the particular DBMS that is accessed.
+
+Connecting to a db:
+
+* identify and register database driver
+* open a connection to a database
+* execute a query against the database
+* process the results of the query
+* repeat steps 3-4 as necessary
+* close connection to the db
+
+* Three tier architecture: client/server configuration that includes three layers; a client layer, and two server layers.
+ * common setup is to have an app server and a database server.
+
+* thin client: an application where the client accessing the application primarily provides
+ the user interfaces and some application processing, usually with no or limited local data storage.
+
## Section 2: XML and Data Exchange on the Internet
Read Chapter 8: "Database Application Development"
* "Extensible Markup Language (XML)"
+
+
+* XML: a text based markup language used to describe data structures hierarchically, using HTML-like tags.
+* XML Schema Definition (XSD): language used for defining XML databases that has been recommended by the W3C.
+
+XSD describes structure, data typing, and validation of a salesperson record.
+
+Storing XML documents:
+
+1. store xml in a relational db by shredding it: store each element in a relational table.
+2. store XML as blob: not great for full text search unless the db supports xml datatypes.
+3. store XML in db using database specific column datatypes.
+4. Store xml using xml databases: this is non-relational database designed specifically for xml.
+
+* XPath: expressions used to locate data in XML documents.
+* XQuery: XML transformation language that allows application to query both relational and XML data.
+* extensible stylesheet language transformation (XSLT): pretty up xml document display.
+* Web services description language (WSDL): xml grammar to describe an public interface for an API.
+* Simple Object Access Protocol (SOAP): xml communication protocol. Don't do this. just use json or protocol buffers.
+* Service-oriented architecture (SOA): collection of services that communicate with each other in some manner, usually by passing data or coordinating a business activity.