Deep Dive into Data Management in SharePoint applications Raj Chaudhuri.

Slides:



Advertisements
Similar presentations
CHAPTER OBJECTIVE: NORMALIZATION THE SNOWFLAKE SCHEMA.
Advertisements

Chapter 10: Designing Databases
Business Development Suit Presented by Thomas Mathews.
What is a Database By: Cristian Dubon.
C6 Databases.
Access 2007 Product Review. With its improved interface and interactive design capabilities that do not require deep database knowledge, Microsoft Office.
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Chapter 4: Database Management. Databases Before the Use of Computers Data kept in books, ledgers, card files, folders, and file cabinets Long response.
BUSINESS DRIVEN TECHNOLOGY
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation.
Information systems and databases Database information systems Read the textbook: Chapter 2: Information systems and databases FOR MORE INFO...
Chapter 4 Database Management Systems. Chapter 4Slide 2 What is a Database Management System (DBMS)?  Database An organized collection of related data.
Chapter 1: The Database Environment
Creating a SharePoint App with Microsoft Access Services
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Copyright © 2003 by Prentice Hall Module 4 Database Management Systems 1.What is a database? Data hierarchy and data organization Field, record, file,
6-1 DATABASE FUNDAMENTALS Information is everywhere in an organization Information is stored in databases –Database – maintains information about various.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 13 Database Management Systems: Getting Data Together.
DAY 15: ACCESS CHAPTER 2 Larry Reaves October 7,
Class Instructor Name Date. Classroom Tips Class Roster – Please Sign In Class Roster – Please Sign In Internet Usage Internet Usage –Breaks and Lunch.
STORING ORGANIZATIONAL INFORMATION— DATABASES CIS 429—Chapter 7.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
Chapter 7: Database Systems Succeeding with Technology: Second Edition.
CHAPTER 8: MANAGING DATA RESOURCES. File Organization Terms Field: group of characters that represent something Record: group of related fields File:
CODD’s 12 RULES OF RELATIONAL DATABASE
OLAP Cubes and Pivot Tables Leveraging the Power of a Microsoft EPM Solution EPM Customization Series Part 1 February 21 st, 2007 Brendan Giles, PMP, MCP.
Microsoft Office Word 2013 Expert Microsoft Office Word 2013 Expert Courseware # 3251 Lesson 3: Customizing Document Elements.
© 2007 by Prentice Hall 1 Introduction to databases.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Discovering Computers Fundamentals Fifth Edition Chapter 9 Database Management.
Lecture2: Database Environment Prepared by L. Nouf Almujally & Aisha AlArfaj 1 Ref. Chapter2 College of Computer and Information Sciences - Information.
Microsoft ® Office SharePoint ® Server 2007 Training Excel Services II: Requirements, recommendations, and permissions [Your company name] presents:
1.file. 2.database. 3.entity. 4.record. 5.attribute. When working with a database, a group of related fields comprises a(n)…
Storing Organizational Information - Databases
9/7/2012ISC329 Isabelle Bichindaritz1 The Relational Database Model.
Microsoft ® Office Access ™ 2007 Training Datasheets I: Create a table by entering data ICT Staff Development presents:
C6 Databases. 2 Traditional file environment Data Redundancy and Inconsistency: –Data redundancy: The presence of duplicate data in multiple data files.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
McGraw-Hill/Irwin © 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 7 Storing Organizational Information - Databases.
Views Lesson 7.
McGraw-Hill/Irwin © 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 7 Storing Organizational Information - Databases.
Using the Right Method to Collect Information IW233 Amanda Murphy.
6.1 © 2010 by Prentice Hall 6 Chapter Foundations of Business Intelligence: Databases and Information Management.
DATABASE MANAGEMENT SYSTEMS CMAM301. Introduction to database management systems  What is Database?  What is Database Systems?  Types of Database.
Prepared By Prepared By : VINAY ALEXANDER ( विनय अलेक्सजेंड़र ) PGT(CS),KV JHAGRAKHAND.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
Management Information Systems, 4 th Edition 1 Chapter 8 Data and Knowledge Management.
Database Management Systems (DBMS)
Microsoft FrontPage 2003 Illustrated Complete Integrating a Database with a Web Site.
Reduce, Reuse, Recycle. Housekeeping… Download EventBoard Mobile and remember to fill out session evaluations… Phasers set to stun, mobile devices set.
Transportation Agenda 77. Transportation About Columns Each file in a library and item in a list has properties For example, a Word document can have.
McGraw-Hill/Irwin © 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 7 Storing Organizational Information - Databases.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
MPUG Global December 2 nd 2004 Portland, Oregon Brian Smith, Microsoft Corporation.
Overview of Basic 3D Experience (Enovia V6) Concepts
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
Core LIMS Training: Entering Experimental Data – Simple Data Entry.
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
Microsoft Office Access 2010 Lab 1
Microsoft Dynamics.
What Is Sharepoint? Mohsen Ashkboos
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment.
MANAGING DATA RESOURCES
Please thank our sponsors!
SharePoint 2010 – SharePoint 101
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2009.
INTRODUCTION A Database system is basically a computer based record keeping system. The collection of data, usually referred to as the database, contains.
Presentation transcript:

Deep Dive into Data Management in SharePoint applications Raj Chaudhuri

Quasi-statutory warning You are going to hear a lot of opinion in this session. My opinion.

Agenda The SharePoint data modelS (note the capital S) The core SharePoint “Lists” data model : our focus today Discussion of: –Data definition –Data manipulation –Querying and extraction The Object Model: the SharePoint “business tier” Conclusion

THE SHAREPOINT DATA MODEL(S)

SharePoint Data Model(S) Data stored in external data stores, accessed directly using custom components Data stored in external data stores, accessed using BCS or Excel Services Data stored in SharePoint “service databases”, accessed using Service Applications Data stored in Web Part Properties (content DB), accessed using the web part manager Data stored in SharePoint Lists

THE SHAREPOINT “LISTS” DATA MODEL

Characteristics Designed for collaborative applications, and as such: –Updates are more important than Inserts –Both are more important than querying –Multiple people are expected to work on the same instance of data at the same time –So, no locks. Instead, auditing and versioning. Caveat: Check in/check out model in document libraries

More Characteristics Designed for user serviceable applications. As such: –The data structures can change at any time Hence, each data structure is largely self-contained. Relations in the classical sense are possible, but cludgy –So can relations Hence, rather than consider relationships between entity types, we should consider relationships between entity instances –The UI must automatically adapt to match So, STOP asking for “customized” UI for SharePoint data entry. You’re missing the POINT of SharePoint.

Even More Characteristics Permissions are an important part of the data model As are associated actions: reactive ones like “triggers” (Event Receivers), and proactive ones like associated custom actions, quick steps etc.

Logical Data Model Logical ConceptSharePoint “List” data model concept Data TypeField Type. This determines how the data is stored in the underlying data store, how it is represented in user interfaces, and uniquely in SharePoint, the actual user interface used to display and edit this type of data. More types can be created by developers AttributeColumn. Columns in SharePoint could be local to a collection of data, or reusable across data collections. They also contain metadata that directly affects the user interface. Tuple (a collection of columns representing one unit of data) List Item. A List Item can also contain associations. For instance, list items can have attachments or themselves represent files, can exist inside “folders”, can have multiple versions, can go through a workflow etc. Ultimately, all this is represented through columns. Table (a row-ordered collection of tuples) List. A list is not just a collection of list items. It is also a way for relating items together, a link between items and various user interfaces, and a provider of context to item data.

Conceptual Data Model Conceptual (uh) ConceptSharePoint Concept AttributeColumn, as explained in the previous slide. EntityContent Type, and not list. Every list item in every list is an instance of a content type. Like a list, a content type can provide context to data. For example, only items of a particular content type may be associated with certain UI actions, events or workflows. Entity SetList. A single list can have items of different content types.

Columns Columns are identified by a GUID and an internal name, both of which need to be unique in the column’s namespace. They also have a Display Name, which need not be unique, can be changed by the user, and is usually localized in Language Packs. Columns can be defined at the list level. They are then available in that list only. Such columns are called List Columns. Columns can also be defined at the site level. They are then available on that site and sites below it in the site collection. Such columns are called Site Columns.

Columns Contd. Site columns can be added to lists. A particular site column may be added to a list only once. When a site column is added to a list, the list actually gets a column which is an exact copy of the site column, not the site column itself. This column is called a site column in list. Its properties may be changed in the list. A site column in list maintains a link to the original site column. Any changes made to the site column can be applied to all site columns in lists that were created from that site column.

Content Types Content Types in SharePoint can, and in fact have to, derive from other content types. A derived content type can inherit all fields of the base content type. All content types in SharePoint ultimately derive from a base content type called Item. An entire category of content types derive from another type called File. These represent files in library-type lists. File itself derives from Item. Content Types are identified by a unique ID. This ID not only identifies the content type, but also identifies the base content type.

Content Types Contd. Content Types are defined at the site level. They are then available on that site and sites below it in the site collection. Content Types can also be defined at the list level. They are then available only in that list. A site content type can be associated with a list. This creates an exact copy of the site content type in the list, called a Content Type In List. This maintains a link to the original, and any changes made to the original can flow down to all copies.

Lists Lists are created from List Definitions or List Templates. A definition defines what content types a list can have, and what columns. The columns in a list can come from the content types, or be new ones defined in the list itself, or be site columns in the list. The number of columns that the list receives from its associated content types is the union of the columns in all those content types.

Lists There are a lot more columns in a list than are apparent. For example, each workflow associated with a list causes a column to be maintained. There is a column that tracks the content type of each item, another which tracks the version, a column called FsObj that tracks if the item is a file or folder, and so on.

Physical data model This should not matter. It is meant to be opaque to all consumers of SharePoint technology. That means, do NOT directly modify, query, or even look at the structures of, any SharePoint database. NOT EVEN if some blog of some expert tells you to. NOT EVEN if I tell you to Do NOT, okay?

That said… List items are stored in real SQL Server tables, as real rows. A single SharePoint list item can be wrapped over a number of SQL Server rows. The number is 6 by default. It can be adjusted, but not through any UI; only programmatically. Do not do this. Unless you know what you are doing. And you don’t. I don’t either. Not yet.

We really should not be discussing this… The total number of bytes that a single SharePoint list item can occupy is hardcoded to This total is to be reached by adding the number of bytes of storage required by each column. That, in turn, depends on the column’s field type. This does not include files and attachments. 256 bytes out of 8000 are reserved for system- defined columns. For more details, read: – us).aspx (SharePoint Server 2010 capacity management: Software boundaries and limits) us).aspx

One more time Worry about the physical only as a last resort And DO NOT look inside the databases.

DATA DEFINITION Discuss:

DATA MANIPULATION Discuss:

THE OBJECT MODEL: SHAREPOINT’S “BUSINESS TIER”

The object model ALL access to SharePoint data (at least for manipulation) must happen via the object model. This ensures the maintaining of context, security and integrity. This also causes event receivers to fire, and workflows to execute as appropriate.

Object model hosts The object model may be hosted by –A SharePoint web application –A SharePoint service application –A SharePoint Windows service, especially the Timer service –A custom application (Careful here. An application that uses the SharePoint web services is indirectly using the OM hosted in a SharePoint web application. Ditto an app that uses the Client Object Model).

Effect The object model, and hence the host, directly talks to the appropriate databases. Event receivers are executed in the host. Workflows execute in the host.

QUERYING AND EXTRACTION Discuss

In Conclusion The SharePoint “Lists” data model is a very powerful and flexible model, IF… –Your data is collaborative in nature, and –User-servicability is important to you Do NOT try to use lists instead of SQL database tables. They are meant for different kinds of usage. For example: –Do not use lists if your data is insert-heavy, updated rarely, and queried frequently. –Especially the last. If you need complicated reporting, you should not be using lists. –At least, be prepared to move the data from lists into some other data store before you do heavy-duty reporting. Just like we do for data warehouses.

In Conclusion And remember, lists are a package deal. You get centralized backup, user servicability, a simplified permission system, workflows, event receivers, and an adaptive user interface. You cannot pick and choose. You get the whole deal if you decide on lists. And so, just as an example, please stop trying to precisely customize list forms. You are defeating the entire POINT…of SharePoint

Raj Chaudhuri

Thank You